ESP32开发学习 LVGL Littlevgl 使用文件系统加载BMP图片解码显示

      LVGL开发中经常用到图片显示,LVGL官方有提供PNG,GIF,JPG等解码库,配合LVGL的虚拟文件系统可以实现控件直接加载调用解码库解码并显示,非常的方便。

        此篇文章就介绍如何移植LVGL官方的BMP解码库,通过LVGL的虚拟文件系统从SD卡加载BMP文件解码显示。

本文开发环境:
Visual Studio Code V1.58.2

LVGL版本 V7.10.0

芯片平台:ESP32

IDF库版本:4.3.0

IDF TOOLS编译工具链版本:2.9

本文软件基于LVGL官方提供的ESP32工程lv_port_esp32修改而来

LVGL ESP32官方地址:https://github.com/lvgl/lv_port_esp32

开发板平台:HelloBug ESP32开发板

开发板购买链接:https://hellobug.taobao.com/

注意:在开始之前请确认上述开发环境,并确认你的源码必须已经移植并对接了LVGL的虚拟文件系统。没有实现的朋友参考我的另一篇文章:ESP32开发学习 LVGL Littlevgl 使用文件系统

一、BMP解码库移植

第一步就是先下载lvgl官方的BMP解码库

git地址:https://github.com/lvgl/lv_lib_bmp

 下载完成后,解压到你的工程目录components中文件夹中,文件结构如下图

二、配置LVGL支持BMP

下载好的解码库中是没有CMakeLists.txt这个文件的,我们的工程是没办法调用这个库的,我们在lv_lib_bmp文件夹中创建一个,内容如下

 接着修改main文件夹中的CMakeLists.txt,idf_component_register中添加注册bm[解码组件,结果如下图:

至此,BMP解码库就移植成功了,接下来就是调用并显示了。 

三、初始化BM[解码库显示BMP文件

在main.c文件中添加引用bmp解码头文件

 在main.c文件中,初始化lvgl之后添加文件系统初始化和BMP解码库初始化(文件系统参考文章开始的注意事项中的另篇文章)

  注意:在SD卡中创建一个image的文件夹,下载一个16位深度的BMP图片文件放进去,尽量小一点,解码很耗内存,大图可能会申请内存失败!无法显示

在main.c文件中,初始化lvgl之后,再添加一个img控件并加载SD卡中的BMP文件

 编译下载看效果:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值