gpt4 book ai didi

bitmap - bisizeimage,bisize和bfsize有什么区别?

转载 作者:行者123 更新时间:2023-12-04 09:40:18 25 4
gpt4 key购买 nike

我是这个领域的新手,我对某些术语感到困惑!
bisizeimage bisize bfsize !
请给我一个简单的定义,如果有方程式来计算它们呢?

编辑:(“由 friend 回答”)

biSize > The number of bytes required by the structure.(what is the structure exactly ?)

The structure is the struct BITMAPINFOHEADER. That is a fixed value.


biSizeImage>图像的大小(以字节为单位)。
bfSize>位图文件的大小(以字节为单位)。
(图像和位图文件有什么区别?)

biSizeImage is the whole image size, bfSize is the same, but you have to add the size of the 2 header files.

最佳答案

@Roman Abashin的回答有一个轻微但重要的错误。 biSize不是两个 header 的组合大小。

biSize是BITMAPINFOHEADER仅的大小。它是40个字节。

biSize = 40

这两个 header 的总大小实际上是 bfOffBits (您可以将“Off”看作是指实际位图与 header 开头之间的偏移量-请记住,位图紧随 header 之后)。
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 Abashin的biSizeImage公式(实际位图的大小)对于24位位图是正确的。

令人困惑的是,biSize,bfOffBits,bfSize和biSizeImage都以字节为单位,而
biWidth和biHeight以 像素为单位。每个像素的字节数在 header 的biBitCount部分中定义。对于24位位图,它是3个字节(或24位)。

请注意,bfOffBits的单位以字节为单位,biBitCount的单位以位为单位。

可以在Microsoft的页面上找到更多详细信息:

Info on BITMAPFILEHEADER

Info on BITMAPINFOHEADER

编辑:我在下面的位图概述中添加了一些注释,以进一步阐明事物
编辑:将biSizeImage + 24(等)更改为+ 14。

关于bitmap - bisizeimage,bisize和bfsize有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com