2010-05-04 39 views

回答

2

您應該可以使用該方法,但請確保您的XNA Texture2D使用32bbpARGB格式創建。任何其他格式都會阻止該方法直接運行。

+0

[Texture2D = bgr32]。但還有另一個問題,我怎麼能'重新格式化紋理到32bbpARGB? – nilphilus 2010-05-04 21:11:45

+0

for(int i = 0; i <4 * texture.Width * texture.Height; i + = 4) { byte tmp = textureData [i + 0]; textureData [i + 0] = textureData [i + 2]; // b textureData [i + 2] = tmp; // r textureData [i + 3] = 255; // A } 它不需要太多時間,但可以改進。 – nilphilus 2010-05-04 21:35:42

1

更簡單的方法是將Texture2D使用Texture2D.SaveAsPngTexture2D.SaveAsJpeg保存到內存流中,然後使用Bitmap(Stream)打開虛擬文件。

相關問題