S3C6410 FramBuffer编程(四) --- RGB565、RGB24简介,以及RGB565转换为RGB24
2012-10-17 15:00
477 查看
1.
RGB565
RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:
高字节 低字节
R R R R R G G G G G G B B B B B
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31
2.
RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR
BGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; // 蓝色分量
BYTE rgbtGreen; // 绿色分量
BYTE rgbtRed; // 红色分量
} RGBTRIPLE;
3. RGB24 转换为 RGB565
unsigned short rgb24_2_rgb565(unsigned short r, unsigned short g, unsigned short b)
{
unsigned short ret;
ret = (r << 8)&0xf800 | (g << 3)&0x07e0 | (b >> 3);
return ret;
}
详情请见http://blog.csdn.net/anufa/article/details/1529484
RGB565
RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:
高字节 低字节
R R R R R G G G G G G B B B B B
可以组合使用屏蔽字和移位操作来得到RGB各分量的值:
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
R = (wPixel & RGB565_MASK_RED) >> 11; // 取值范围0-31
G = (wPixel & RGB565_MASK_GREEN) >> 5; // 取值范围0-63
B = wPixel & RGB565_MASK_BLUE; // 取值范围0-31
2.
RGB24
RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGRBGR BGR…。通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; // 蓝色分量
BYTE rgbtGreen; // 绿色分量
BYTE rgbtRed; // 红色分量
} RGBTRIPLE;
unsigned short rgb24_2_rgb565(unsigned short r, unsigned short g, unsigned short b)
{
unsigned short ret;
ret = (r << 8)&0xf800 | (g << 3)&0x07e0 | (b >> 3);
return ret;
}
详情请见http://blog.csdn.net/anufa/article/details/1529484
相关文章推荐
- S3C6410 FramBuffer编程(四) --- RGB565、RGB24简介,以及RGB565转换为RGB24
- S3C6410 FramBuffer编程(五) --- 读取bmp格式图片的一般步骤
- S3C6410 FramBuffer编程(五) --- 读取bmp格式图片的一般步骤
- YUV格式学习:Y转换成RGB24
- 斜45度地图简介、坐标系转换以及数据碰撞
- YUV420P的格式以及转换为RGB565的代码(Android摄像头的输出一般为YUV420P)
- 色相(H)饱和度(S)明度(L)与RGB的转换以及在android上的试验
- RGB1-----分离RGB24像素数据中的R、G、B分量和生成RGB24格式的彩条测试图
- 在SharePoint中服务器端使用Word编程模型转换PDF遇到的问题以及解决方法
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- rgb888与rgb565转换的影响
- RGB565 转换 BMP24
- VC编程实现色彩空间RGB与XYZ相互转换
- YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24(转载)
- C#从入门到精通(No.1)—C#简介、C# 强大的编程功能以及环境的搭建
- 转YV12为RGB24以及I420转RGB42
- RGB565 与 RGB888的相互转换
- 如何对YUV420进行颜色转换RGB24/RGB32
- 阻塞/非阻塞读写总结、tcp网络编程的本质、muduo::Buffer设计简介
- 树莓小车-超声波模块HC-SR04简介以及编程