c++ - 1bpp 单色 BMP

标签 c++ bitmap bmp

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

one black then one white pixel etc

16 black pixels then 16 white pixels

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

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

最佳答案

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

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

关于c++ - 1bpp 单色 BMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7960092/

相关文章:

c++ - 在具有属性的 vector 中查找元素

java - Android - 设置应用程序背景

Android 如何将图库图像添加到绘图应用程序中

android - 图片资源文件放在哪里? BitmapFactory.decodeFile()

vb.net - 在 ZPL 标签打印机上使用位图

c - bmp 文件错误 - 项目 2017.1.exe : 0xC0000005: Access violation writing location 0xCDCDCDCD 中 0x0FDD053F (ucrtbased.dll) 抛出异常

c - 使用 SDL_image 加载 BMP 图像问题

c++ - 从 64 位转换为 32 位时,Gcc 不会给出任何警告

c++ - libavcodec,如何对不同帧率的视频进行转码?

c++ - 当特定字符被击中时,如何打破循环?