我有来自相机的RGB8格式的原始像素数据,需要将其转换为Bitmap
。然而,Bitmap PixelFormat
似乎只支持RGB 16、24、32和48格式。
我尝试使用PixelFormat.Format8bppIndexed
,但图像颜色异常且翻转。
public static Bitmap CopyDataToBitmap(byte[] data)
{
var bmp = new Bitmap(640, 480, PixelFormat.Format8bppIndexed);
var bmpData = bmp.LockBits(
new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.WriteOnly, bmp.PixelFormat);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
bmp.UnlockBits(bmpData);
return bmp;
}
有没有其他方式可以正确地转换这种数据类型?