捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
27 2017.05

BITMAPINFOHEADER 结构

点击次数:1342 更新时间:2017-5-27 12:32:08  【打印此页

BITMAPINFOHEADER 结构

BITMAPINFOHEADER 结构包含一个 DIB(设备无关位图)维度和颜色格式的相关信息。


结构原型:

typedef struct tagBITMAPINFOHEADER {
  DWORD biSize;
  LONG  biWidth;
  LONG  biHeight;
  WORD  biPlanes;
  WORD  biBitCount;
  DWORD biCompression;
  DWORD biSizeImage;
  LONG  biXPelsPerMeter;
  LONG  biYPelsPerMeter;
  DWORD biClrUsed;
  DWORD biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;



成员解析:

成员

含义

biSize

结构体所占字节数

biWidth

1. 位图的宽度,以像素为单位
2. 如果 biCompression 是 BI_JPEG 或 BI_PNG,biWidth 成员指示压缩的 JPEG 或 PNG 文件的宽度

biHeight

1. 位图的高度,以像素为单位
2. 如果 biHeight 是正数,那么位图是一种自下而上的 DIB,并且它的源点是左下角
3. 如果 biHeight 是负数,那么位图是一种自上而下的 DIB,并且它的源点是左上角
4. 如果 biHeight 是负数,表明是一个自上而下的 DIB,biCompression 必须是 BI_RGB 或 BI_BITFIELDS。自上而下的 DIB 不能够被压缩
5. 如果 biCompression 是 BI_JPEG 或 BI_PNG,biHeight 成员指示压缩的 JPEG 或 PNG 文件的高度

biPlanes

指定目标设备平面的数量,这个值必须设置为 1

biBitCount

1. 指定每个像素的位数。
2. BITMAPINFOHEADER 结构中的 biBitCount 成员决定位图中定义每个像素的位数和最大颜色数量。该成员必须为下面值中的一个:

含义

0

表示每像素的位数已经被指定,或者被 JPEG 和 PNG 格式所暗示

1

表示位图是单色的,并且 BITMAPINFO 结构中的 bmiColors 成员包含两个条目。位图数组中的每一位代表一个像素。如果位没有被设置,那么像素显示 bmiColors 表中的第一个条目的颜色;如果位被设置了,那么像素显示表中的第二个条目的颜色

4

表示位图最多有 16 种颜色,并且 BITMAPINFO 结构中的 bmiColors 成员包含 16 个条目。位图中的每个像素是由颜色表中的 4 位索引来表示的。例如,如果位图的第一个字节是 0x1F,那么这个字节代表两个像素。第一个像素包含颜色表中第二个条目的颜色,第二个像素包含颜色表中第 16 个条目的颜色

8

表示位图最多有 256 种颜色,并且 BITMAPINFO 结构中的 bmiColors 成员包含256个条目。这种情况下,位图数组中的每个字节代表一个像素

16

1. 表示位图最多有 2^16 种颜色。如果 BITMAPINFOHEADER 结构的 biCompression 成员是 BI_RGB,那么 BITMAPINFO 结构的 bmiColors 成员是 NULL。位图数组中的每个字代表一个像素。用 5 位来表示红绿蓝中每个颜色分量的相对强度。蓝色的值是最重要的 5 位,其次是分别表示绿色和红色的 5 位。最重要的位没有被使用。bmiColors 的颜色表被用于优化调色板设备使用的颜色,并且必须包含 BITMAPINFOHEADER 结构的 biClrUsed 成员指定的条目数量
2. 如果 BITMAPINFOHEADER 结构中的 biCompression 成员是 BI_BITFIELDS,那么 bmiColors 成员包含 3 个双字,分别指定每个像素的红,绿,蓝成分。位图数组中的每个字表示单个像素
3. 当 biCompression 成员是 BI_BITFIELDS,设置在每个双字掩码中的位必须是连续的和不应该和另一个掩码的位重叠,不必使用像素的所有位

24

表示位图最多有 2^24 种颜色,并且 BITMAPINFO 结构的 bmiColors 成员为 NULL。位图数组中的每三个字节分别表示每个像素蓝,绿,红颜色成分的相对强度。bmiColors 的颜色表被用于优化调色板设备使用的颜色,并且必须包含 BITMAPINFOHEADER 结构的 biClrUsed 成员指定的条目数量

32

1. 表示位图最多有 2^32 种颜色。如果 BITMAPINFOHEADER 结构中的 biCompression 成员是 BI_RGB,那么 BITMAPINFO 结构中的 bmiColors 成员为 NULL。位图数组中的每个双字分别表示每个像素蓝,绿,红颜色成分的相对强度。蓝色的值是最重要的 8 位,其次是分别表示绿色和红色的 8 位。每个双字的最高位没有被使用。bmiColors 的颜色表被用于优化调色板设备使用的颜色,并且必须包含 BITMAPINFOHEADER 结构的 biClrUsed 成员指定的条目数量
2. 如果 BITMAPINFOHEADER 结构中的 biCompression 成员是 BI_BITFIELDS,那么 bmiColors 成员包含 3 个双字,分别指定每个像素的红,绿,蓝成分。位图数组中的每个双字表示单个像素
3. 当 biCompression 成员是 BI_BITFIELDS,设置在每个双字掩码中的位必须是连续的和不应该和另一个掩码的位重叠,不必使用像素的所有位

biCompression

1. 为压缩的自下而上的位图指定压缩类型,自上而下的 DIB 不能够被压缩
2. 该成员值可能为下表中的一个:

描述

BI_RGB

一种未压缩格式

BI_RLE8

1. 一种使用 8bpp(像素深度)游程(RLE)编码的位图格式。该压缩格式是一个包含 1 个计数字节和一个表示颜色索引的字节所组成的 2 字节格式
2. 更多内容,请参考 Bitmap Compression

BI_RLE4

1. 一种使用 4bpp(像素深度)游程(RLE)编码的位图格式。该压缩格式是一个包含 1 个计数字节和一个表示 2 字长颜色索引的字节所组成的 2 字节格式
2. 更多内容,请参考 Bitmap Compression

BI_BITFIELDS

表示位图没有被压缩。并且颜色表包含 3 个 DWORD 值,分别标识着每个像素点的红,绿,蓝成分。当使用 16bpp 和 32bpp 位图时,这是有效的

BI_JPEG

表示图片是一个 JPEG 图片

BI_PNG

表示图片是一个 PNG 图片

biSizeImage

1. 图像所占用的字节数,对于 BI_RGB 位图,这个值可以是 0
2. 如果 biCompression 是 BI_JPEG 或 BI_PNG,那么 biSizeImage 分别指示 JPEG 和 PNG 图片缓冲区的大小

biXPelsPerMeter

1. 按每公尺像素数计算,为位图指定目标设备水平分辨率
2. 程序可以使用该值从资源组中选择最符合当前设备特性的位图

biYPelsPerMeter

按每公尺像素数计算,为位图指定目标设备垂直分辨率。

biClrUsed

1. 指定实际在位图中使用的颜色表中的颜色索引的数量。如果该值为 0,位图为 biCompression 指定的压缩模式使用 biBitCount 值对应的最大颜色数量
2. 如果 biClrUsed 非 0,并且 biBitCount 小于 16,biClrUsed 指定图形引擎或设备驱动访问的实际颜色数量。如果 biBitCount 大于等于 16,biClrUsed 成员指定颜色表的数量,用来优化系统颜色调色板性能。如果 biBitCount 等于 16 或 32,最佳颜色调色板紧跟在 3 个双字掩码之后开始
3. 当位图数组紧接着 BITMAPINFO 结构,那么它是一个封装的位图,它被一个单独的指针引用,并且要求 biClrUsed 必须要么为 0,要么为颜色表的实际大小

biClrImportant

显示位图时所需要的颜色索引的数量。如果该值为 0,要求使用所有颜色



备注:

1. BITMAPINFO 结构包含 BITMAPINFOHEADER 结构和一个颜色表来提供对一个 DIB 的维度和颜色的完整定义。

2. 程序应该使用存储在 biSize 中的信息来定位 BITMAPINFO 结构中的颜色表,如下:

pColor = ((LPSTR)pBitmapInfo + (WORD)(pBitmapInfo->bmiHeader.biSize));

3. BITMAPINFOHEADER 结构被扩展为允许将 JPEG 或 PNG 图像作为源图像传递给 StretchDIBits 函数。


需求:

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Wingdi.h (包含于 Windows.h)



 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1342 更新时间:2017-5-27 12:32:08  【打印此页

上一条:BITMAP 结构

下一条:BITMAPINFO 结构

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修