2011-05-30 82 views
0

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

地址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×64,4096个像素。

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

我,为什么颜色表是必要的灰度图像仍然好奇,虽然

+0

嗯...我没有注意到数字正在稳步递增,这种格式比我第一次想到的要复杂。图像的前三分之一是相同的黑色值,但值改变... – superlazyname 2011-05-30 14:08:10

+0

看着这个模式,我会说它使用每个像素4个字节。 – zneak 2011-05-30 14:11:08

回答

0

我,为什么颜色表是必要的灰度图像仍然好奇,虽然

它看起来像bmp文件没有特殊的灰度模式。所以你不能在标题中设置格式为灰度,所以你需要颜色表来定义你使用的颜色。即使所有颜色都是灰度。

如果你看.png格式,你可以定义你使用的是灰度图像,所以你不需要一个颜色表。 (但也可以使用颜色表来创建灰度图像)。