首页 / 软件开发 / 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 RRRRRGGG0x00??+0 GGGBBBBBR 5 0xf8 G 6 0xe0 0x07B 5 0x1f[RGB24]R G Baddr:1 2 3对于RGB888来说,每个像素由3个字节组成,R->8bit,G- >8bit,B->8bit;RGB565 的每个pixels是由2字节组成,R->5bit,G->6bit,B- >5bit。转换的思路是取出原图的点,对每个采样进行运算。RGB565STEP1(第二个 字节) R 取得前5bit & 0xf8G 取得后3bit & 0xe0 并右移5bit 并入R;STEP2(第一个字节) 取得第4-6bit & 0x1c 并左移3bit 并入BB 取得前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