位图文件头大小

14

我是编程bmp文件的新手,并查看了这个网站以学习bmp头的相关知识: http://www.daubnet.com/en/file-format-bmp

看起来bmp文件的头部应该是54个字节。

我使用paint创建了一个简单的10x10图像,并以24位保存它。根据简单的数学计算,文件大小应该是10*10*3 + 54 = 354个字节。

但十六进制编辑器和文件资源管理器返回的大小为374个字节。

因此我有20个字节的差异,不知道原因。

请问你能告诉我原因吗?

非常感谢!!


对齐填充?使用 SizeOf 而不是自己计算。 (另外,如果您提到您正在询问的编程语言,那么提供答案会更容易。) - Ken White
2
好吧,他在使用MSPaint,而不是编程语言 :) - nneonneo
@nneonneo:问题的开头是“我是一个bmp文件编程新手”。 - Ken White
1个回答

16

BMP文件中的每行都会通过字节填充来保证字节数是4的倍数。

如果没有填充,每行将占用3*10=30个字节。通过填充,每行占用32个字节,因此图像数据大小为320个字节。因此,文件大小为54+320=374个字节。


1
嗨,非常感谢你的回答。这很有道理......但在我的程序中,我有一个10x10像素的矩阵,每个像素是RGB。所以我有额外的20字节栅格数据需要计算吗? 我有点困惑......再次感谢你的帮助! - user1657743
@user1657743:你不需要在填充中放入任何特定的内容;它只是一些垃圾字节,除了隐写学家以外,没有人会看到。 - nneonneo

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