我正在使用一个使用图像传感器和USB微控制器的设备,该设备将使用C#连续传输来自传感器的帧以在GUI上绘制。
我的图像传感器正在RGB565中输出数据,我正在使用以下函数将这个字节数组转换为图像:
public static Bitmap BytesToBmp(byte[] bmpBytes, int w, int h)
{
Bitmap functionReturnValue = default(Bitmap);
Bitmap bmp = new Bitmap(w, h ,System.Drawing.Imaging.PixelFormat.Format16bppRgb565);
System.Drawing.Imaging.BitmapData bdata = bmp.LockBits(new Rectangle(new Point(), bmp.Size), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format16bppRgb565);
Marshal.Copy(bmpBytes, 0, bdata.Scan0, bmpBytes.Length - 1);
bmp.UnlockBits(bdata);
functionReturnValue = bmp;
return functionReturnValue;
}
不幸的是,我得到一个非常粉红色的图像,想通过将图像从RBG565转换为RGB888来尝试解决这个问题。如果您有任何建议,请告诉我。