STM32
直播中

蔡鼎瑾

9年用户 1115经验值
私信 关注
[问答]

emWin转RGB565颜色失真怎么解决?

我今天测试了一下一张纯色图片RGB24 的格式 颜色值:0xe9e9e9,用ST的BmpCvtST.exe转出来RGB565格式的 里面全是0xE75C。

用Img2Lcd转出来的是0xEF5D。而实际转也是0xEF5D。
但是很奇怪的是,用emWin 里面已定义的颜色转就不会失真,比如什么#define GUI_GRAY          0x00808080
我还是试着使用0xe9e9e9填充整个LCD:
GUI_SetBkColor(0xe9e9e9);
GUI_Clear();
再把颜色读回来,也是0xE75C。太奇怪了,难道有什么设定会导致转emWin转RGB565出现失真?

回帖(2)

李龙

2024-4-24 17:05:01
先用GUI_COLOR显示看看颜色正常不,然后用一张纯黑色图片试试
举报

h1654155275.5748

2024-4-30 17:45:01
在这种情况下,颜色失真可能是由于转换工具或emWin库的设置导致的。以下是一些建议来解决这个问题:

1. 检查转换工具的设置:确保在使用ST的BmpCvtST.exe或Img2Lcd进行转换时,选择了正确的颜色格式和位深。如果可能的话,尝试使用其他转换工具进行比较。

2. 检查emWin库的设置:确保emWin库的颜色格式设置正确。在emWin的配置文件中,检查是否有关于颜色格式的设置,如`GUICC_M565`或`GUICC_8888`。确保这些设置与你的LCD和转换工具兼容。

3. 使用自定义颜色转换:如果上述方法都不能解决问题,你可以尝试自己实现一个颜色转换函数,将RGB24格式转换为RGB565格式。这样可以确保转换过程中的颜色准确性。

4. 检查LCD的驱动和设置:确保LCD的驱动和设置正确,以支持所需的颜色格式。如果可能的话,尝试使用其他LCD进行测试。

5. 调试和测试:在emWin中,尝试使用不同的颜色值进行测试,以确定问题是否与特定的颜色值有关。此外,检查emWin的日志和错误消息,以获取更多关于问题的线索。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分