获取文件信息.bmp

Get file information .bmp

我对 .bmp 还很陌生 我想了解更多。我现在有一个 .bmp 文件,我想知道从哪里可以获得 header 信息、文件信息等。 基本上,我需要图像背后的书面代码(不是打开图像本身,而是查看那里写的是什么——位图、header 等)。 我想访问您可以在维基百科上阅读的信息 here

我不知道如何打开文件来获取这些信息...虽然我可以在文本编辑器中以某种方式阅读它...

谁能给我指出正确的方向?

这是一个很好的页面,它详细介绍了 .bmp 图像的二进制文件格式: http://www.fileformat.info/format/bmp/egff.htm

当然,Microsoft 本身也有文档: https://msdn.microsoft.com/en-us/library/windows/desktop/dd183374(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx

要查看文件中的原始十六进制数据,请使用十六进制编辑器,例如 http://mh-nexus.de/en/hxd

said:

Assuming I want to find in the HEX Code the size of the image. How would I get that HEX Code

因此,选择任何 BMP 文件并在十六进制编辑器中打开它。来自 specification you link to:

All versions of BMP format files begin with the following 14-byte [file] header:

[...]

Version 4.x BMP files begin with the same 14-byte header as v2.x and v3.x BMP files. The file header is also followed by a bitmap header, which is an expanded version of the v3.x bitmap header

typedef struct _Win4xBitmapHeader
{
    DWORD Size;            /* Size of this header in bytes */
    LONG  Width;           /* Image width in pixels */
    LONG  Height;          /* Image height in pixels */
    [...]
} WIN4XBITMAPHEADER;

所以第一个header是14个字节。第 15-18 个字节定义第二个 header 的长度。然后是两个 long,每个 4 个字节,给你图像的宽度和高度。

所以字节 19-22 给出宽度,字节 23-26 给出高度 - 对于版本 3 或 4 位图。版本 1 和 2 每个维度分别使用一个和两个字节,所以一定要先检查位图版本(通过分析 header 大小)。