Bitmap to Texture2D problem with colors
- by xnaNewbie89
I have a small problem with converting a bitmap to a Texture2D. The resulted image of the conversion has the red channel switched with the blue channel :/ I don't know why, because the pixel formats are the same. If someone can help me I will be very happy :)
System.Drawing.Image image =
System.Drawing.Bitmap.FromFile(ImageFileLoader.filename);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image);
Texture2D mapTexture = new Texture2D(Screen.Game.GraphicsDevice, bitmap.Width, bitmap.Height,false,SurfaceFormat.Color);
System.Drawing.Imaging.BitmapData data =
bitmap.LockBits(new System.Drawing.Rectangle(
0, 0, bitmap.Width, bitmap.Height),
System.Drawing.Imaging.ImageLockMode.ReadOnly,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
byte[] bytes = new byte[data.Height * data.Width*4];
System.Runtime.InteropServices.Marshal.Copy(data.Scan0, bytes, 0, bytes.Length);
mapTexture.SetData<byte>(bytes, 0, data.Height * data.Width * 4);
bitmap.UnlockBits(data);
bitmap.Dispose();
image.Dispose();