I have raw pixel data coming from the camera in RGB8 format that I need to convert to Bitmap . However, Bitmap PixelFormat only supports RGB 16, 24, 32, and 48.
I tried using PixelFormat.Format8bppIndexed , but the image looks discolored and inverted.
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; }
Is there any other way to correctly convert this data type?
source share