Я открываю различные типы изображений, такие как (8 и 16 бит), и они (Монокром, RGB, цвет палитры).
У меня есть необработанные данные об этих изображениях.
Я создаю растровое изображение, как это для 8-битных изображений.
//for monocrome images i am passing PixelFormat.Format8bppIndexed.
//for RGB images i am passing PixelFormat.Format24bppRgb
PixelFormat format = PixelFormat.Format8bppIndexed;
Bitmap bmp = new Bitmap(Img_Width, Img_Height,format);
Rectangle rect = new Rectangle(0, 0, Img_Width, Img_Height);
//locking the bitmap on memory
BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, format);
// copy the managed byte array to the bitmap's image data
Marshal.Copy(rawPixel, 0, bmpData.Scan0, rawPixel.Length);
bmp.UnlockBits(bmpData);
Проблема в том, что когда я рисую изображение BMP, оно отличается по цвету от оригинала.
Так есть ли способ применить lut (справочную таблицу) к этим цветным изображениям.
Я хочу любой небезопасный код, потому что я пробовал getixel и setPixel, и они очень медленные.
Я также не хочу методы Image.fromSource ().