LVGL Learning】LVGL 加载 GIF 动画图片
最编程
2024-03-17 22:15:36
...
1. 使用环境
- arduino IDE
- ESP32 主控
- 屏幕使用 ST7789 驱动,240*240像素TFT屏幕
LVGL的环境搭建查看文章:
https://blog.****.net/shileiwu0505/article/details/121194963
2. 使用到的文件
- gifdec.c
- gifdec.h
- lv_gif.c
- lv_gif.h
主要使用以上四个文件,以上四个文件在在 https://github.com/lvgl 可以找到,但是注意,要是要在LVGL8.0以上版本中才能找到,如果下载的是 lv_lib_gif 库文件,编译时会报错,找不到指定的函数,也可以使用博主弄好的
- 将以上文件放入用户的的工程文件夹下:
- 将各个文件的包含路径改一下
gifdec.c
gifdec.h
lv_gif.c
lv_gif.h
3. 修改文件
-
将库文件中的lvgl文件下 lvgl.h 文件打开,并增加包含目录:
-
增加 : #include “src/misc/lv_fs.h”
-
在lv_conf.f 文件中使能 LV_TICK_CUSTOM
注意:LV_TICK_CUSTOM 一定要使能,否则,动态图不动
4. 将GIF动图生成数组
- 打开链接:
https://lvgl.io/tools/imageconverter - 根据以下选择生成数组形式:
- 生成的.c文件放入到项目文件下
测试GIF动图
/**
* Open a GIF image from a file and a variable
*/
void lv_example_gif_1(void)
{
LV_IMG_DECLARE(img_bulb_gif);
lv_obj_t * img;
img = lv_gif_create(lv_scr_act());
lv_gif_set_src(img, &img_bulb_gif);
lv_obj_align(img, LV_ALIGN_CENTER, 0, 0);
}
将以上代码编译,不出意外屏幕就开始显示动态图像了。
测试案例已上传。
https://download.****.net/download/shileiwu0505/38131823