如何获得精确的位图文件大小



我正试图通过位图文件的十六进制信息来获得正确的宽度和高度。我已经在标题中指定了宽度和高度,但由于填充,我需要调整宽度,然后以字节为单位计算文件的大小。

我现在使用的公式是

(宽*高*色深)/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是每像素的比特数(颜色深度)。

最新更新