位图文件头大小

Posted

技术标签:

【中文标题】位图文件头大小【英文标题】:Bitmap file header size 【发布时间】:2012-09-09 06:23:02 【问题描述】:

我是 bmp 文件编程的新手,我查看了这个网站以了解 bmp 标头。 http://www.daubnet.com/en/file-format-bmp

bmp文件的头部好像是54字节。

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

但是十六进制编辑器和文件浏览器返回的大小为 374 字节。

所以我有 20 个字节的差异,我不知道为什么。

你能告诉我为什么吗?

非常感谢!!

【问题讨论】:

对齐填充?使用SizeOf 而不是自己计算。 (此外,如果您提及您所询问的编程语言,它会有所帮助;它可以更容易地提供答案。) 嗯,他使用的是 MSPaint,而不是编程语言 :) @nneonneo:“我是 bmp 文件编程的新手”是问题的开头句。 【参考方案1】:

BMP 中的行被填充为 4 字节的倍数。

没有填充,每行是 3*10 = 30 字节。使用填充后,每行是 32 字节,因此图像数据大小为 320 字节。因此,文件大小为 54+320 = 374 字节。

【讨论】:

您好,非常感谢您的回答。这是有道理的......但在我的程序中,我有一个 10x10 像素的矩阵,每个像素都是 RGB。所以我有额外的 20 字节的栅格数据要计算?我有点困惑...再次感谢您的帮助! @user1657743:您不必在填充中添加任何特定内容;这只是没有人(除了隐写术者)会看到的垃圾字节。

以上是关于位图文件头大小的主要内容,如果未能解决你的问题,请参考以下文章

音视频相关

Bmp图像的数据格式及读取

BMP文件中图像数据是按啥顺序存放的?

BMP文件结构(转)

BMP文件格式分析

BMP 储存个人理解