2014-10-08 70 views
2

我想通过它的十六进制信息得到正确的位图文件的宽度和高度。我已经在头文件中指定了宽度和高度,但是我需要通过填充来调整宽度,然后以字节为单位计算文件的大小。如何获得精确的位图文件大小?

我现在使用的公式是

(宽度×高度×颜色质量汇总)/ 8 + 54

首先,是该式是正确的,和第二,我将如何调整宽度填充?

+2

对于行填充,您可以使用ceiling(w * d/32)* 32。我不知道“54”,但如果它是假设的头大小,那么总字节大小将是(h * ceiling(w * d/32)* 32)/ 8 + 54。 – ForguesR 2014-10-08 01:48:19

+0

这个工程!谢谢你,伙计! @ForguesR – Tetramputechture 2014-10-08 01:59:34

+0

很高兴我能帮到你。 – ForguesR 2014-10-08 02:01:13

回答

1

计算一个bmp文件的总大小并不是很简单。您提供的公式使我相信,你正在寻找一个非常具体的bmp file type有:

这实际上给出了一个54字节的标头大小。

在一个bmp文件中,每行像素被四舍五入为4个字节的倍数(该行被填充)。因此,要获得bmp的真实大小,需要使用填充来计算行大小,然后将其乘以图像高度并添加标题大小。

要使用填充来计算行大小(以字节为单位),请使用以下公式:ceiling(width * bpp/32) * 32/8

要计算bmp的总大小(以字节为单位),您可以使用:(height * ceiling(width * bpp/32) * 32)/8 + 54

其中bpp是比特/像素(颜色深度)。

相关问题