如何从文件头计算位图的宽度和高度?

3
00000000 42 4D 3A FE 05 00 00 00-00 00 36 04 00 00 28 00
00000010 00 00 D1 02 00 00 1D 02-00 00 01 00 08 00 00 00 
00000020 00 00 04 FA 05 00 13 0B-00 00 13 0B 00 00 00 00 
宽度和高度的值是多少?

你认为你描述了足够清楚的问题吗?甚至没有背景信息。 - Aminah Nuraini
1个回答

3
根据维基百科 - BMP文件格式
Offset (hex)    Offset (dec)    Size (bytes)    Windows BITMAPINFOHEADER[1]
0E              14              4               the size of this header (40 bytes)
12              18              4               the bitmap width in pixels (signed integer)
16              22              4               the bitmap height in pixels (signed integer)

使用您发布的位图标头,宽度和高度将为:
Width:  D1 02 00 00
Height: 1D 02 00 00

维基百科上面的链接指出:

所有整数值都以小端格式存储(即最不重要的字节先)。

如果我理解正确,那就是:

 Width = 209 + (2 x 256) + (0 x 256^2) + (0 x 256^3) = 721
Height =  29 + (2 x 256) + (0 x 256^2) + (0 x 256^3) = 541

为什么要乘以256? - Srdjan M.
2
宽度和高度各为4字节整数。每个字节有8位,因此每个字节有2^8(256)个可能的值。因此,基本上它是一个256进制整数(由于是小端序,字节顺序相反)。例如,在十进制中,数字1250可以表示为0 + 5x10 + 2x10^2 + 1x10^3。在基于256的小端整数中,第一个字节是0-255,第二个字节是完整256的数量,依此类推。 - Tone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接