BITMAPINFO结构
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值。
BITMAPINFO结构相关推荐
- 自定义结构体-相机参数数据类型
当我们面对两组一样的参数类型时,比如现在我面对的就是打开两个相机,他们对应的参数类型是一样的,这时候就可以定义两个结构体数组,再定义两个相机的时候把他们都设为空,这样就不会警告了,而且效率更高了. t ...
- VC++和VC++.NET中与图像处理有关的几个概念、结构和类
VC++和VC++.NET中与图像处理有关的几个概念.结构和类 最近一直在看VC++有关图像处理方面的书,终于把以前一直混淆的几个概念.结构和类弄清楚了,特整理如下.如有错误,请大家批评指正,不胜感激 ...
- 位图BITMAP结构
数字媒体对于图像的处理肯定离不开对于位图的有关处理,首先要弄清楚位图的结构才能进行下面的工作.位图(Bitmap)图像又称点阵图或光栅图,它使用我们称为像素(象素,Pixel)的一格一格的小点来描述图 ...
- 数字图像处理之位图在计算机中的存储结构
位图是windows中广泛应用的一种图像格式,其后缀名为.bmp.位图也称为位映射图片. 一张位图包含了许许多多的像素点,每个像素点有不同的颜色.由此构成了五彩斑斓的位图图像, 然而正是因为由像素点这 ...
- windows 位图结构详解
位图文件可看成由4个部分组成:位图文件头(bitmap-file header).位图信息头(bitmap-information header).彩色表(color table)和定义位图的字节阵列 ...
- NeHe OpenGL第三十五课:播放AVI
NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...
- MFC显示位图 from http://blog.csdn.net/liuzhuomju/article/details/7299458
这些例子都在vs2005测试通过 一.最简单的一种1.将图像文件以资源形式加入工程中,IDB_BITMAP1 2.用一个PICTURE控件,在其属性中,将其Type设置为Bitmap 3.将Pitur ...
- bmp文件格式详细解析
先区分几个概念:16色和16位色一样吗? 不一样! 颜色位数,即是用多少位字节表示的值,每一位可以表示0和1两值.通常图片的颜色深度,简称色深,就是用位数来表示的,所以,我通常会看到8位色,16位色, ...
- VC++ .Net 实例学习
VC++.NET中添加由C#编译的DLL引用的方法 http://blog.csdn.net/much0726/article/details/4986627 关于VC.NET的资料网络上确实非常少, ...
最新文章
- Apache Jackrabbit源码研究(五)
- MVVM框架下,WPF实现Datagrid里的全选和选择
- thinkjs——空对象判断
- 中移4G模块-ML302-OpenCpu开发-PCF8591测量电压
- android: listview与sqlite数据操作实例
- SpringBoot修改默认端口号
- pytorch——nn.BatchNorm2d()函数
- 拓端tecdat|用R语言中的神经网络预测时间序列:多层感知器和极限学习机
- xtile 下载_Stata: gen 命令中的 group() 函数的潜在风险
- 【数学和算法】加权平均法
- 从学校考的计算机是几级呀,计算机考级共分为几级
- 【中南林业科技大学】【陈】第十周作业sqi成绩管理系统
- nginx 引号 x22
- 多库多表场景下使用 Amazon EMR CDC 实时入湖最佳实践
- 三极管工作原理分析,精辟、透彻,看后你就懂
- [附源码]java毕业设计病历管理系统
- 小米android手机怎么刷机,刷机如此简单 小米手机四种刷机方法
- Spring Boot普通参数与基本注解
- 【单片机学习之旅】(1-2)stm32F407存储器及总线架构
- Leetcode-元素和小于等于阈值的正方形的最大边长(python)
热门文章
- python request下载文件_Python3.4.3使用urllib.request下载文件带进度显示
- fs react 使用 保存文件_使用FS进行文件同步和备份
- mysql function函数_详解MySQL如何按表创建千万级的压测数据
- 干货总结:I2C总线详细要点
- 异常处理_月隐学python第19课
- Linux如何访问mmio空间,一文读懂Linux下如何访问I/O端口和I/O内存
- 字体对话框java实验_Java Web安全 || Java基础 sun.misc.Unsafe
- dex运行linux,随着三星最新的DeX更新,更多的手机可以使用Linux
- php 循环多条件,怎么循环带条件的数组
- java收获_java学习收获