编辑文章 - 博客频道 - CSDN.NET
来源:互联网 发布:alexa mini软件下载 编辑:程序博客网 时间:2024/04/28 21:29
RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色),那么图像数据001101010111…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。
R R R R R G G G
#define RGB565_MASK_RED
#define RGB565_MASK_GREEN
#define RGB565_MASK_BLUE
R = (wPixel & RGB565_MASK_RED) >> 11;
G = (wPixel & RGB565_MASK_GREEN) >> 5;
B =
···RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
X R R R R G G
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:
#define RGB555_MASK_RED
#define RGB555_MASK_GREEN
#define RGB555_MASK_BLUE
R = (wPixel & RGB555_MASK_RED) >> 10;
G = (wPixel & RGB555_MASK_GREEN) >> 5;
B =
¨ RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
typedef struct tagRGBTRIPLE {
} RGBTRIPLE;
¨ RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB32。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:
typedef struct tagRGBQUAD {
} RGBQUAD;
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 编辑文章 - 博客频道 - CSDN.NET
- 对于”第一次创业者”应该给什么样的建议
- build/envsetup.sh 简介
- VRRP协议介绍
- OpenNMS全接触-线程池(五)
- UNIX高级环境编程笔记线程间同步
- 编辑文章 - 博客频道 - CSDN.NET
- Javascript signature demo
- MySQL基础知识---------MyISAM存储引擎
- 数据防泄密专家为企业数据泄漏出谋划策
- JSP学习之路(一):JSP可输入下拉框编写代码
- VC下加载多种格式图片的方法总结
- java中的多线程
- Oracle VirtualBox中安装Fedora 15步骤
- 使用Androidpn实现Android消息推送