C# XNA.Texture2D到System.Drawing.Bitmap
我需要将XNA.Texture2D加载到PictureBoxC# XNA.Texture2D到System.Drawing.Bitmap,c#,.net,xna,picturebox,texture2d,C#,.net,Xna,Picturebox,Texture2d,我需要将XNA.Texture2D加载到PictureBox 我试过这个:但不起作用。有什么建议吗?您应该能够使用该方法,但请确保您的XNA Texture2D是以32bbpARGB的格式创建的。任何其他格式都会阻止该方法直接工作。您应该能够使用该方法,但请确保您的XNA Texture2D是以32bbpARGB的格式创建的。任何其他格式都会阻止该方法直接工作。更简单的方法是使用Texture2D.SaveAsPng或Texture2D.SaveAsJpeg将Texture2D保存到内存流中,然
我试过这个:但不起作用。有什么建议吗?您应该能够使用该方法,但请确保您的XNA Texture2D是以32bbpARGB的格式创建的。任何其他格式都会阻止该方法直接工作。您应该能够使用该方法,但请确保您的XNA Texture2D是以32bbpARGB的格式创建的。任何其他格式都会阻止该方法直接工作。更简单的方法是使用
Texture2D.SaveAsPng
或Texture2D.SaveAsJpeg
将Texture2D保存到内存流中,然后使用位图(流)打开虚拟文件
更简单的方法是使用Texture2D.SaveAsPng
或Texture2D.SaveAsJpeg
将Texture2D保存到内存流中,然后使用位图(流)
打开虚拟文件。但还有另一个问题,我如何将纹理“重新格式化”到32bbpARGB?对于(inti=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}它不需要太多时间,但可以改进。[Texture2D=bgr32]。但是还有一个问题,我如何将纹理“重新格式化”为32bbpARGB?对于(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}它不需要太多时间,但可以改进。