C++ 1bpp单色BMP

C++ 1bpp单色BMP,c++,bitmap,bmp,C++,Bitmap,Bmp,我运行了一个演示bmp文件格式帮助程序“DDDemo.exe”,以帮助我可视化32x1像素bmp文件(单色)的格式。我同意两个标题部分,但似乎不理解颜色表和像素位部分。我制作了两个32x1像素的bmp文件来帮助我进行比较(请参阅附件) 有人能帮助我理解“像素位”与彩色地图的关系吗 更新:经过一些尝试和错误,我终于能够写一个32x1像素的单色BMP。虽然它有不同的像素位作为附加图像,但该工具有助于标题和颜色映射概念。谢谢大家的意见 这些图像的颜色表只是指示图像中有两种颜色: 颜色0是(00,

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

有人能帮助我理解“像素位”与彩色地图的关系吗


更新:经过一些尝试和错误,我终于能够写一个32x1像素的单色BMP。虽然它有不同的像素位作为附加图像,但该工具有助于标题和颜色映射概念。谢谢大家的意见

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

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

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

像素位中的未设置位表示第一个颜色表条目(0,0,0),黑色,设置位表示第二个颜色表条目(ff,ff,ff),白色


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

共有32个像素位,因此,对于未压缩的BIU rgb,这个数字似乎是正确的。但是AB 01 08 00是从哪里来的?这就是我不明白的
AB 01 08 00
看起来像某种压缩数据,与压缩方法不兼容。如果它真的是未压缩的,我希望类似于
00ff
。我想OP是在问你写的东西与“像素位”中的数据有什么关联。如果不理解他的查看器对数据做了什么,很难知道。位图的CLRUSE=0,即使它们有一个包含两个条目的颜色表。我想,这足以混淆该程序的内容。
0
是一个非常有效的值:“如果
biclrued
为零,则数组包含给定位深度的最大颜色数;即2^
bibibibittcount
颜色”。