public static System.Drawing.Bitmap DecodeTextureDataToBitmap(byte[] data, int width, int height, TextureFormat format) { System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(width, height, format.IsPremultiplied() ? PixelFormat.Format32bppPArgb : PixelFormat.Format32bppArgb); BitmapData bitmapData = null; try { bitmapData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, bitmap.PixelFormat); PipelineWriter writer = new ARGB32Writer(bitmapData.Scan0, bitmapData.Width, bitmapData.Height, bitmapData.Stride); DecodeTextureDataToWriter(data, width, height, format, writer); } finally { if (bitmapData != null) bitmap.UnlockBits(bitmapData); } return bitmap; }