TFT LCD屏中关于BGR和RGB转换函数问题, rgb=(b<<11)+(g<<5)+(r<<0);

2019-07-21 00:56发布

u16 LCD_BGR2RGB(u16 c)
   {
     u16  r,g,b,rgb;      
     b=(c>>0)&0x1f;
     g=(c>>5)&0x3f;
     r=(c>>11)&0x1f;  
     rgb=(b<<11)+(g<<5)+(r<<0);   
     return(rgb);
    }

rgb=(b<<11)+(g<<5)+(r<<0);  请问大神,这个rgb中,r应该在最前,b在低5位。但是这条公式不是把b放在前面、r放在低5位去了吗?求解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
login_FAE
1楼-- · 2019-07-21 01:32
应该是这里的   b g r误导你了,你带个参数进去  就明白了
来俩不甜的
2楼-- · 2019-07-21 06:14
你复制错了,这个函数体很明显是rgb转bgr
正点原子
3楼-- · 2019-07-21 10:40
 精彩回答 2  元偷偷看……
fEndman
4楼-- · 2019-07-21 11:15
emmm插一句,大部分液晶自带反转控制寄存器
萌新00
5楼-- · 2019-07-21 16:30
login_FAE 发表于 2018-4-8 18:44
应该是这里的   b g r误导你了,你带个参数进去  就明白了

哈哈,谢谢,懂了!确实没去仔细看前面的bgr的移位值。
萌新00
6楼-- · 2019-07-21 16:57
来俩不甜的 发表于 2018-4-8 20:56
你复制错了,这个函数体很明显是rgb转bgr

这是一个互相转化的函数。因为c值是BGR格式,所以函数就是BGR转RGB

一周热门 更多>