RGB888色彩格式转RGB565格式
RGB888转RGB565的色彩格式转换方法:通过位运算提取RGB888格式中R的高5位、G的高6位和B的高5位,然后重新组合成16位的RGB565格式。具体操作包括:用掩码提取各颜色分量(0xF80000提取R,0x00FC00提取G,0x0000F8提取B),通过移位调整位置(R右移19位,G右移10位,B右移3位),最后用位或运算合并。代码中ST7789_RGB565函数实现了这一转换过程,
·

一个RGB888格式的色彩值是三字节,有24个bit
一个RGB565格式的色彩值是双字节,有16个bit
将R值的高5位取出,G值的高6位取出,B值的高5位取出,按从高到低的顺序码放在一起后就是RGB565色彩值了
R = (RGB888 & 0xF80000) >> (16+3)
G = (RGB888 & 0x00FC00) >> (8+2)
B = (RGB888 & 0x0000F8) >> (0+3)
RGB565 = (R << 11) | (G << 5) |B
代码如下
uint16_t ST7789_RGB565(uint32_t rgb_888)
{
uint32_t rgb_565 = 0;
/* RED */
rgb_565 |= ((rgb_888 & 0xF80000) >> 8);
/* GREEN */
rgb_565 |= ((rgb_888 & 0x00FC00) >> 5);
/* BLUE */
rgb_565 |= ((rgb_888 & 0x0000F8) >> 3);
return (uint16_t)rgb_565;
}
调试

更多推荐



所有评论(0)