将PixelFormat从RGB565转换为RGB888 C#

时间:2013-04-29 20:58:11

标签: c#

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

0 个答案:

没有答案