为什么这个.bmp图像中的0x1C的bpp信息错误?

时间:2011-05-30 14:05:50

标签: colors bmp 8-bit bpp

Hex editor

地址1D表示图像是每像素8位,但不是,每个像素由3个字节(24位)表示。

起初,我认为photoshop错误地做了这个,但我发现这种格式用于所有灰度图像。

为什么.bmp图像不使用0-FF中的值来描述每个像素的灰度值,而不是使用四个字节作为像素?

编辑:我能够回答我自己关于文件结构的问题

from Wikipedia

  

每像素8位(8bpp)格式   支持256种不同的颜色和   每1字节存储1个像素。

     

每个字节   是一个最多256个表的索引   颜色。此颜色表采用32bpp 8.8.8.0.8 RGBAX格式。

十六进制编辑器中显示的颜色表是每像素四个字节。

远低于实际的像素阵列,即每像素8位。

the actual pixel array

我通过计算得出,图像是64 x 64,4096像素。

像素阵列从436开始,到1437结束。在十进制中,这两个数字之间的差异是4097,所以像素数组恰好是每个像素一个字节。

我仍然很好奇为什么灰度图像需要颜色表,不过

1 个答案:

答案 0 :(得分:0)

我仍然很好奇为什么灰度图像需要颜色表,不过

看起来bmp文件没有特殊的灰度模式。因此,您无法在标题中设置格式为灰度,因此您需要使用颜色表来定义您使用的颜色。即使所有颜色都是灰度。

如果查看.png格式,可以定义使用灰度图像,因此不需要颜色表。 (但也可以使用颜色表来创建灰度图像。)