1956|3

274

帖子

8

TA的资源

纯净的硅(初级)

楼主
 

【平头哥Sipeed LicheeRV 86 Panel测评】 7 - lvgl 图片颜色显示不对的解决方法 [复制链接]

 

在Lichee RV86上使用lvgl做显示时,发现图片的颜色显示不对,试了以下方法,都没有解决问题

  1. 图片的格式,从png换成jpg
  2. 图片转换格式,将转换格式从"True color" 换成 "True color with alpha"
  3. 更改图片控件的背景色、透明度
  4. 关闭默认启动的waft程序

因此想到用三基色的图片,观察一下到底颜色错在了哪里。下图为原图和显示的图片

对比上面的两个图片,发现蓝色和红色的位置正好反了,因此造成了显示颜色的不正确。

所以我尝试在转换图片的时候,勾选上 "Output in big-endian format"生成的图片,发现就能显示正确的颜色了(见下图)。

图片转换的网址为:https://lvgl.io/tools/imageconverter

造成这种错误的根源是数据的大小端的设置不对。只改变生成图片的方式并没有在根本上改变系统颜色不对的问题。在调用颜色的函数时,显示的颜色仍然会是错误的。

我没有在lvgl的库中找到设置大小端的方式,而修改"lv_conf.h"的"#define LV_BIG_ENDIAN_SYSTEM 0 " 又会造成新的编译错误。因此就去修改lvgl的刷新函数,手动的将红色与蓝色的数据互换一下。方法如下:

  • 在fb_dev.c文件中,修改函数"void fbdev_flush(lv_disp_drv_t drv, const lv_area_t area, lv_color_t * color_p)",加上红框中的代码。

至此屏幕颜色显示正常了。

 

最新回复

颜色是多少位的,感觉如果是大小端问题不应该RGB正好反过来还能正常显示呢  详情 回复 发表于 2022-4-21 14:30
点赞 关注
 
 

回复
举报

2万

帖子

74

TA的资源

管理员

沙发
 

谢谢分享:)

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

9714

帖子

24

TA的资源

版主

板凳
 

颜色是多少位的,感觉如果是大小端问题不应该RGB正好反过来还能正常显示呢

点评

数据是32位的,颜色使用的其中24位。  详情 回复 发表于 2022-4-21 14:40
 
 
 

回复

274

帖子

8

TA的资源

纯净的硅(初级)

4
 
littleshrimp 发表于 2022-4-21 14:30 颜色是多少位的,感觉如果是大小端问题不应该RGB正好反过来还能正常显示呢

数据是32位的,颜色使用的其中24位。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表