0

我正在开发一个使用图像传感器和 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 来解决这个问题。如果您有任何建议,请告诉我。

4

0 回答 0