欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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 库文件,编译时会报错,找不到指定的函数,也可以使用博主弄好的

  1. 将以上文件放入用户的的工程文件夹下:
    在这里插入图片描述
  2. 将各个文件的包含路径改一下
    gifdec.c
    在这里插入图片描述
    gifdec.h
    在这里插入图片描述
    lv_gif.c
    在这里插入图片描述
    lv_gif.h
    在这里插入图片描述

3. 修改文件

  1. 将库文件中的lvgl文件下 lvgl.h 文件打开,并增加包含目录:

  2. 增加 : #include “src/misc/lv_fs.h”
    在这里插入图片描述

  3. 在lv_conf.f 文件中使能 LV_TICK_CUSTOM
    在这里插入图片描述

注意:LV_TICK_CUSTOM 一定要使能,否则,动态图不动

4. 将GIF动图生成数组

  1. 打开链接:
    https://lvgl.io/tools/imageconverter
  2. 根据以下选择生成数组形式:
    在这里插入图片描述
  3. 生成的.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