• 生活就是这样,需要去灌溉!
    • 谢谢您的关注,欢迎您的注册与写作!
    • 循环往复,生生不息,或许这就是生命的意义吧!生命是插曲的产品吧!
    • 古今多少事,都付笑言中!
    • 风住尘香花已尽,日晚倦梳头。物是人非事事休,欲语泪先流。
    • 闻说双溪春尚好,也拟泛轻舟,只恐双溪舴艋舟,载不动许多愁。

RGB、YUY2、YUYV、YVYU、UYVY与AYUV

Resources 柳叶扉鸿 来源:CSDN:rabbit729 5年前 (2020-09-18) 3056次浏览 已收录 扫描二维码
内容目录

下面分别介绍各种 RGB 格式。

¨RGB1、RGB4、RGB8 都是调色板类型的 RGB 格式,在描述这些媒体类型的格式细节时,通常会在 BITMAPINFOHEADER 数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以 RGB1(2 色位图)为例,比如它的调色板中定义的两种颜色值依次为 0x000000(黑色)和 0xFFFFFF(白色),那么图像数据 001101010111…(每个像素用 1 位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。

¨ 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

¨ RGB555 是另一种 16 位的 RGB 格式,RGB 分量都用 5 位表示(剩下的 1 位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
高字节             低字节
X R R R R G G       G G G B B B B B       (X 表示不用,可以忽略)
可以组合使用屏蔽字和移位操作来得到 RGB 各分量的值:

#define RGB555_MASK_RED    0x7C00
#define RGB555_MASK_GREEN  0x03E0
#define RGB555_MASK_BLUE   0x001F
R = (wPixel & RGB555_MASK_RED) >> 10;   // 取值范围 0-31
G = (wPixel & RGB555_MASK_GREEN) >> 5;  // 取值范围 0-31
B =  wPixel & RGB555_MASK_BLUE;         // 取值范围 0-31

¨ RGB24 使用 24 位来表示一个像素,RGB 分量都用 8 位表示,取值范围为 0-255。注意在内存中 RGB 各分量的排列顺序为:BGR BGR BGR…。通常可以使用 RGBTRIPLE 数据结构来操作一个像素,它的定义为:

typedef struct tagRGBTRIPLE {
BYTE rgbtBlue;    // 蓝色分量
BYTE rgbtGreen;   // 绿色分量
BYTE rgbtRed;     // 红色分量
} RGBTRIPLE;

¨ RGB32 使用 32 位来表示一个像素,RGB 分量各用去 8 位,剩下的 8 位用作 Alpha 通道或者不用。(ARGB32 就是带 Alpha 通道的 RGB32。)注意在内存中 RGB 各分量的排列顺序为:BGRA BGRABGRA…。通常可以使用 RGBQUAD 数据结构来操作一个像素,它的定义为:

typedef struct tagRGBQUAD {
BYTE    rgbBlue;      // 蓝色分量
BYTE    rgbGreen;     // 绿色分量
BYTE    rgbRed;       // 红色分量
BYTE    rgbReserved;  // 保留字节(用作 Alpha 通道或忽略)
} RGBQUAD;


柳叶扉鸿 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明RGB、YUY2、YUYV、YVYU、UYVY与AYUV
相关文章
喜欢 (2)