|
楼主 |
发表于 2013-10-26 01:19:03
|
显示全部楼层
proteldxp 发表于 2013-10-25 20:14
如果是RGB565模式就这样:第4位接B,第10位接G,第15位接R。
#define RGB565_MASK_RED 0xF800
#define
RGB565_MASK_GREEN 0x07E0
#define
RGB565_MASK_BLUE 0x001F
void rgb565_2_rgb24(BYTE *rgb24, WORD
rgb565) //把一个字的565数据转成3个分离的R ,G,B
{
//extract RGB
//分离出单独的RGB
rgb24[2] = (rgb565 & RGB565_MASK_RED) >> 11;
rgb24[1] = (rgb565 & RGB565_MASK_GREEN) >> 5;
rgb24[0] = (rgb565 & RGB565_MASK_BLUE);
//amplify the
image //往高位移动填满单字节的8位
rgb24[2] <<= 3;
rgb24[1]
<<= 2;
rgb24[0] <<= 3;
}
USHORT rgb24_2_rgb565(int r, int g, int b) //应该会损失数据内容
{
return (USHORT)(((unsigned(r) << 8) & 0xF800) |
((unsigned(g) << 3) & 0x7E0) |
((unsigned(b) >>
3)));
}
是这种意思不? 度娘找到的 C |
|