我正试图通过位图文件的十六进制信息来获得正确的宽度和高度。我已经在标题中指定了宽度和高度,但由于填充,我需要调整宽度,然后以字节为单位计算文件的大小。
我现在使用的公式是
(宽*高*色深)/8+54
首先,这个公式正确吗?其次,我该如何调整填充的宽度?
计算bmp文件的总大小并不是一件简单的事情。你提供的公式让我相信,你正在寻找一个非常特定的bmp文件类型:
- 一种简单的BITMAPINFOHEADER(V3 BMP)
- 无压缩(
BI_RGB
)
这有效地给出了54字节的报头大小。
在bmp文件中,每行像素四舍五入为4字节的倍数(该行为填充行)。因此,要获得bmp的实际大小,您需要计算带填充的行大小,将其乘以图像高度,再加上页眉大小。
要计算带填充的行大小(以字节为单位),请使用以下公式:ceiling(width * bpp / 32) * 32 / 8
。
要计算bmp的总大小(以字节为单位),可以使用:(height * ceiling(width * bpp / 32) * 32) / 8 + 54
。
其中bpp
是每像素的比特数(颜色深度)。