ARGB(A444)颜 {MOD}怎么转RGB(565)

2019-07-21 02:47发布

ARGB(A444)颜 {MOD}怎么转RGB(565)
百度了一下,都是RGB(565)转ARGB(A444)的,就是把RGB(565)位移成RGB(444)在加0xF000(即A是0XF)
我按照这思路反向转换怎么就不对了啊(严重偏 {MOD}),求正确的ARGB(A444)颜 {MOD}转RGB(565)的方法,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-07-21 04:15
这个不难吧。
把最高4位去掉
然后剩下的就是RGB 444
转换成RGB565即可啊。注意,最高位如果不够的,补0即可。
假定RGB444=1010 0101 1100

换成RGB565=01010 000101 01100

这就OK了。
STM32VBT6
2楼-- · 2019-07-21 08:37
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-21 10:47
回复【3楼】STM32VBT6:
---------------------------------
低位补0,应该会出问题。
你可以自己试试。
正点原子
4楼-- · 2019-07-21 14:09
 精彩回答 2  元偷偷看……
STM32VBT6
5楼-- · 2019-07-21 18:54
回复【4楼】正点原子:
---------------------------------
如果是高位补0的话,那颜 {MOD}深度最高只有一半,明显有问题。若RGB444=1111 1111 1111,显然这是最大值,为白 {MOD};
按你的说法换成RGB565=01111 001111 01111的话明显不是白 {MOD}了,白 {MOD}不是0xFFFF即1111 1111 1111 1111吗?
我搞图像处理RGB565转RGB888都是低位补0,没问题的。
ye781205
6楼-- · 2019-07-22 00:03
测试了一下,都不正确,高低位补0颜 {MOD}都不对,应该不能直接忽略ARGB的alpha吧

一周热门 更多>