我是这个领域的新手,我对某些术语感到困惑!
bisize,bisize和bfsize!
请给我一个简单的定义,如果有方程的话?
双尺度图像 双尺寸 bfsize 位图信息头 位图文件头
编辑:(“朋友回答”)
biSize >结构所需的字节数。(确切的结构是什么?) 该结构为结构BITMAPINFOHEADER。这是一个固定的值。biSizeImage >图像的大小(以字节为单位)。bfSize >位图文件的大小,以字节为单位。(图像和位图文件之间有什么区别?) biSizeImage是整个图像大小,bfSize是相同的,但是您必须添加2个头文件的大小。
发布于 2018-06-27 10:37:23
@Roman的回答有一个微小但重要的错误。biSize不是两个标头的合并大小。
biSize是BITMAPINFOHEADER唯一的的大小。它是40个字节。
biSize = 40两个标头的组合大小实际上是bfOffBits (您可以将"Off“看作是指标题开头的实际位图的偏移量--记住,位图是直接出现在标题后面的)。
bfOffBits = 54因此,以下所有公式都是bfSize的正确公式
bfSize = biSizeImage + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)
bfSize = biSizeImage + sizeof(BITMAPFILEHEADER) + biSize
bfSize = biSizeImage + 14 + 40
bfSize = biSizeImage + 54
bfSize = biSizeImage + bfOffbits@Roman的biSizeImage公式,即实际位图的大小,对于24位位图是正确的。
令人困惑的是,biSize、bfOffBits、bfSize和biSizeImage都是字节单位,而biWidth和biHeight是像素的单位。每个像素的字节数在标头的biBitCount部分中定义。它是一个24位位图的3字节(或24位).
注意,bfOffBits的单位以字节为单位,biBitCount的单位以位为单位。
更多细节可以在微软的网页上找到:
编辑:我在下面的位图总览中添加了一些注释,以澄清更多的事情。

编辑:将biSizeImage + 24 (等)改为+ 14。
发布于 2015-10-08 06:51:50
bfSize = biSizeImage + sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)
bfSize = biSizeImage + 54
// since BITMAPFILEHEADER = 40 and BITMAPINFOHEADER = 14
biSizeImage = (biWidth * sizeof(RGBTRIPLE) + padding) * abs(biHeight) 发布于 2016-10-02 15:31:16
一个小小的错误,@Shock451 451回答。根据:格式化,交换了BITMAPFILEHEADER和BITMAPINFOHEADER的值。
应该有:
// since BITMAPFILEHEADER = 14 and BITMAPINFOHEADER = 40不是:
// since BITMAPFILEHEADER = 40 and BITMAPINFOHEADER = 14https://stackoverflow.com/questions/25713117
复制相似问题