Мне нужно преобразовать изображение 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-битное изображение». - как?