2010-05-04 17 views

Répondre

2

Vous devriez être en mesure d'utiliser cette méthode, mais assurez-vous que votre XNA Texture2D est créé avec un format de 32bbpARGB. Tout autre format empêchera cette méthode de fonctionner directement.

+0

[Texture2D = bgr32]. mais il y a un autre problème, comment pourrais-je 'reformater' la texture en 32bbpARGB? – nilphilus

+0

for (int i = 0; i <4 * texture.Width * texture.Height; i + = 4) { octet tmp = textureData [i + 0]; textureData [i + 0] = textureData [i + 2]; // b textureData [i + 2] = tmp; // r textureData [i + 3] = 255; // A } il ne prend pas trop de temps, mais pourrait être amélioré. – nilphilus

1

manière plus facile de le faire est de sauvegarder le Texture2D en utilisant Texture2D.SaveAsPng ou Texture2D.SaveAsJpeg à un flux de mémoire et d'ouvrir le fichier virtuel à l'aide Bitmap(Stream).