Мне нужно преобразовать изображение PNG, загруженное из файла, в массив байтов 8 бит на пиксель, используемый другим устройством (встроенное программирование).
Я копирую пиксель за пикселем в новое изображение, созданное в 16-битном цвете - Format16bppRgb565
, но мне нужно Format8bpp
, которого нет в .NET Framework. (Я не могу использовать Format8bppIndexed
, поскольку другое устройство не может обрабатывать индексированные растровые изображения)
Bitmap img = new Bitmap(imgPath);
Bitmap img8 = new Bitmap(imgW, imgH, PixelFormat.Format16bppRgb565);
for (int I = 0; I <= img.Width - 1; I++) {
for (int J = 0; J <= img.Height - 1; J++) {
img8.SetPixel(I, J, img.GetPixel(I, J));
}
}
Так как же я могу преобразовать изображение в массив размером 8 бит на пиксель?
- Можно ли использовать 8-битный индексированный формат и извлечь байты? -
Format8bppIndexed
- Можно ли рассчитать цвета пикселей, уменьшив 32-битные значения цветов R, G, B до 8-битных?
- Есть ли библиотека C #, которая уже делает это?
- «Самый простой способ - создать новое 8-битное растровое изображение и нарисовать на нем 24-битное изображение». - как?