BITMAPINFO结构
结构
2023-09-11 14:16:46 时间
BITMAPINFO结构
BITMAPINFO结构具有如下形式:
typedef struct tagBITMAPINFO
{
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO
BITMAPINFO结构定义了位图(DIB)的度量和颜色信息。
成员:
bmiHeader | 指定了一个BITMAPINFOHEADER结构,包含了有关设备相关位图的度量和颜色格式的信息。 |
bmiColors | 指定了一个RGBQUAD或DWORD数据类型的数组,定义了位图中的颜色。 |
注释:
位图(DIB)由两个部分组成:
(1) | 一个BITMAPINFO结构,描述了位图的度量和颜色信息; | ||||||||||||
(2) | 一个字节数组,定义了位图的像素。数组中的字节被组合在一起,但是每个扫描行必须用零填补,在一个LONG边界结束。如果高度为正的,位图的起始位置在左下角。如果高度为负,起始位置在左上角。 | ||||||||||||
(3) | BITMAPINFOHEADER结构中的biBitCount成员决定了定义像素的位数以及位图中的最大颜色数。这个成员可以是下列值之一:
|
BITMAPINFOHEADER结构中的biClrUsed成员指定了颜色表中实际使用的索引的数目。如果biClrUsed成员被设为0,位图将使用biBitCount成员中指定的最大颜色数。
bmiColors表中的颜色应当按照其重要性的顺序出现。另一种情况是,对于使用DIB函数,bmiColors成员可以是一个16位无符号整数的数组,指定了当前实现的逻辑调色板中的索引,而不是确切的RGB值。在这种情况下,使用位图的应用程序必须调用Windows的DIB函数(CreateDIBitmap,CreateDIBPatternBrush和CreateDIBSection),iUsage参数应被设为DIB_PAL_COLORS。
如果位图是一个压缩位图(这意味着,这种位图的数组直接跟在一个指针所引用的BITMAPINFO头的后面),在使用DIB_PAL_COLORS模式的时候,biClrUsed成员必须被设为偶数,以便使DIB位图数组从DWORD边界开始。
注意:
如果位图被保存在文件中,或者要被传送到另一个应用程序,bmiColors成员不能包含调色板索引。除非应用程序独占地使用和控制位图,位图的颜色表中应当包含准确的RGB值。
相关文章
- linux驱动开发--字符设备:通过cdd_cdev结构中的led变量区分是哪个节点,private_data使用
- 线性表结构:数组
- [SQL] 获取 Microsoft SQL Server 2008 的数据表结构
- 全面拥抱 FastApi — 多应用程序项目结构规划
- Go 打印出结构化结构体
- 【Linux 内核】Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )
- Lua 环境结构 --Linux
- 报表应用结构优化之数据分库存储
- html中 table的结构 彻底搞清 caption th thead等
- Golang的面向对象编程【结构体、方法、继承、接口】
- java 的内存结构
- 手把手带你给你的Linux驱动程序加入platform结构体
- crly-shell centos/windows服务器,Mysql数据库表结构损坏
- HTTP协议 | 一文详解HTTP报文结构
- 从结构上浅谈FPGA实现逻辑的原理