2

我正在使用 python 编写一个位图文件。我创建位图标题的代码是:

pack('bblll', 66, 77, fileLength, 0, 122)

除非我的数学是错误的,(不是)这应该创建一个 14 字节长的字节串。

b = char(1 字节) l = long(4 字节)

1 + 1 + 4 + 4 + 4 = 14

但是,问题是,我收到了 2 个额外的字节;假设我的文件长度为 142,我将收到以下内容(以十六进制表示):

42 4D 00 00 8E 00 00 00 00 00 00 00 7A 00 00 00

额外的 2 位是偏移量 0x2 和 0x3 处的空值。他们来自哪里?我该如何摆脱它们?它正在破坏我的图像。

4

1 回答 1

5

它填充到四字节(字)边界,因此longs 从自然偏移量(即四的倍数的偏移量)开始,使用=前缀(或任何其他可能的字节顺序前缀)来防止这种情况。

有关此文档页面的更多信息。

于 2012-08-26T23:47:13.980 回答