为什么 .bmp 图像有两种类型的文件头?

为什么 .bmp 图像有两种类型的文件头?

我最近在 Notepad++ 中打开了 2 个相同的位图图像,其中一个标题以此标题开头:

大熊猫' 另一个是:'咿~

这是为什么?

答案1

这不是整个标题 - 实际上它是标题的一个半字段。

以下是标题格式来自维基百科

偏移量 尺寸 目的
0 2 个字节 用于标识 BMP 和 DIB 文件的标头字段为十六进制的 0x42 0x4D,与 ASCII 中的 BM 相同。可能的条目如下:
- BM- Windows 3.1x、95、NT 等。
- BA- OS/2 结构位图数组
- CI- OS/2 结构颜色图标
- CP- OS/2 const 颜色指针
- IC- OS/2 结构图标
- PT- OS/2 指针
2 4字节 BMP 文件的大小(以字节为单位)
6 2 个字节 保留;实际值取决于创建图像的应用程序,如果手动创建可以为 0
8 2 个字节 保留;实际值取决于创建图像的应用程序,如果手动创建可以为 0
10 4字节 可以找到位图图像数据(像素数组)的字节的偏移量,即可起始地址。

BM是第一个字段的值。第三个“字符”实际上是第二个字段(BMP 的大小,以字节为单位)的第一个字节,被错误地解释为文本。

答案2

因为标题既不是大熊猫也不咿~。 这是马来亚。您的位图毕竟是不完全相同的。

这在BITMAPFILEHEADER 结构:“文件类型;必须为 BM。”

答案3

在标头中,前 2 个字节必须是“BM”,这就是您所得到的。

接下来的 4 个字节存储文件的大小,巧合的是,在您的情况下,它看起来像“P”或“~”。

您可以尝试获取 4 个位置的原始字节数并计算文件大小。它应该与磁盘上的文件大小相匹配。

或者,使用图像工具处理标题并提取文件大小,然后进行比较。

相关内容