1bpp 单色 BMP

Posted

技术标签:

【中文标题】1bpp 单色 BMP【英文标题】:1bpp Monochromatic BMP 【发布时间】:2011-10-31 21:42:30 【问题描述】:

我运行了一个演示 bmp 文件格式帮助程序“DDDemo.exe”来帮助我可视化 32x1 像素 bmp 文件(单色)的格式。我对这两个标题部分没意见,但似乎不了解颜色表和像素位部分。我制作了两个 32x1 像素的 bmp 文件来帮助我比较(请参阅附件)。

有人可以帮助我理解“像素位”与颜色图的关系吗?

更新:经过反复试验,我终于能够编写一个 32x1 像素的单色 BMP。尽管它具有与附加图像不同的像素位,但此工具有助于标题和颜色映射概念。谢谢大家的意见。

【问题讨论】:

位图的 ClrUsed = 0,即使它们有一个包含 2 个条目的颜色表。我猜这足以混淆该程序的填充物。 0biClrUsed 的完全有效值:"如果 biClrUsed 为零,则数组包含给定位深度的最大颜色数;即 2^ biBitCountcolors". 【参考方案1】:

PIXEL BITS 中未设置的位指的是第一个颜色表条目 (0,0,0),黑色,设置位指的是第二个颜色表条目 (ff,ff,ff),白色。

“每像素 1 位 (1bpp) 格式支持 2 种不同的颜色,(例如:黑色和白色,或黄色和粉红色)。像素值存储在每个位中,第一个(最左边)第一个字节的最高有效位中的像素。每个位是 2 种颜色表的索引。此颜色表采用 32bpp 8.8.8.0.8 RGBAX 格式。未设置的位将引用第一个颜色表条目,并且设置位将引用最后(第二个)颜色表条目。” - BMP file format

【讨论】:

我认为 OP 是在询问您写的内容与“PIXEL BITS”中的数据有何关联。 如果不了解他的查看器对数据做了什么,就很难知道。【参考方案2】:

这些图片的颜色表只是表示图片中有两种颜色:

颜色0是(00, 00, 00)——纯黑色 颜色 1 是 (FF, FF, FF) -- 纯白色

但是,显示的图像压缩方法(BI_RGB -- 未压缩)对于给定的像素数据和图像没有意义。

【讨论】:

有 32 个像素位,所以这个数字对于未压缩的 bi_rgb 来说似乎是正确的。但是 AB 01 08 00 来自哪里? 这就是我不明白的。 AB 01 08 00 看起来像是某种压缩数据,与压缩方法不符。如果它真的是未压缩的,我会期待像 00 00 FF FF 这样的东西。

以上是关于1bpp 单色 BMP的主要内容,如果未能解决你的问题,请参考以下文章

ps里怎么设置单色黑?

求单色位图,16色位图,24色位图和256色位图之间的区别?

求单色位图,16色位图,24色位图和256色位图之间的区别?

LCD单色的液晶屏怎么用!

媒体查询彩色单色和打印

69 RGB图像转单色位图