Welcome

首页 / 软件开发 / C++ / RGB565与RGB888的转换

RGB565与RGB888的转换2013-05-27RGB565的颜色格式RGB555色彩格式是相同的,除了6位是绿色的价值,

而不是5。因此,所有16位 都在使用。该组织在图像缓冲区的像素是从左至右的权

利,自下而上。

RGB565格式说明:

RGB565彩色模式, 一个像素占两个字节, 其中:第一个字节的前5位用

来表示R(Red),第一个字 节的后三位+第二个字节的前三位用来表示G(Green),

第二个字节的后5位用来表示B(Blue)。

如 :15 14 13 12 11 10 9 8 , 7 6 5 4 3 2 1 0

[RGB565]

0x00??+1 RRRRRGGG

0x00??+0 GGGBBBBB

R 5   0xf8    

G 6   0xe0 0x07

B 5   0x1f

[RGB24]

R G B

addr:1 2 3

对于RGB888来说,每个像素由3个字节组成,R->8bit,G- >8bit,B->8bit;

RGB565 的每个pixels是由2字节组成,R->5bit,G->6bit,B- >5bit。转换的思

路是取出原图的点,对每个采样进行运算。

RGB565

STEP1(第二个 字节) R 取得前5bit  & 0xf8

G 取得后3bit  & 0xe0 并右移5bit 并入R;

STEP2(第一个字节) 取得第4-6bit & 0x1c 并左移3bit 并入B

B 取得前5bit  & 0xf8 并右移3bit 与G中间3位合并

R4  R3  R2  R1  R0  G5  G4  G3 | G2  G1  G0  B4  B3  B2  B1  B0

 A[] 15  14  13  12  11  10   9   8 |  7   6   5   4   3   2   1   0