我需要将从文件加载的PNG图像转换为其他设备(嵌入式编程)使用的每像素8位字节数组。C# - 如何将图像转换为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位图像绘制到它上面。” - 怎么样?
你说你的设备不能做索引。那么它如何使用每像素8位?它是灰度吗? – Chris 2009-11-19 05:51:00
还是它有2位的红色,3位的绿色,3位的蓝色,或类似的东西? – Chris 2009-11-19 05:52:12
从我看到的最难的部分将生成实际的调色板。 – Nyerguds 2017-03-31 07:32:26