OpenEdv-开源电子网

 找回密码
 立即注册
查看: 681|回复: 0

LVGL-8.4动态背景图(动态壁纸)

[复制链接]

15

主题

109

帖子

0

精华

高级会员

Rank: 4

积分
607
金钱
607
注册时间
2014-8-14
在线时间
183 小时
发表于 2025-5-14 13:27:20 | 显示全部楼层 |阅读模式
lvgl-gif.gif

硬件平台:正点原子-阿波罗
MCU:STM32H743,标准主频-480MHz
LCD:7’ - 1024x600
RTOS:FreeRTOS
GUI:LVGL-8.4
---------------------------------------------------------------------------------
大致流程:
1.设置LVGL背景图:
关键代码:
  1. lv_style_t style_bg;
  2. lv_img_dsc_t bg_picture;

  3. ...

  4. lv_style_init(&style_bg);
  5. lv_style_set_bg_img_src(&style_bg, &bg_picture);
  6. lv_obj_add_style(lv_obj[id_screen], &style_bg, LV_PART_MAIN);

  7. ...
复制代码

2.GIF图片解码:
参考正点原子的GIF解码即可,但注意解码数据放在一个大的缓存里,不是直接显示在屏幕上。

3.将解码的一帧GIF数据绘制到步骤1中的lv_img_dsc_t结构体中去
  1. lv_obj_t *wallpaper_obj = NULL;

  2. wallpaper_obj = lv_obj_create(NULL);

  3. ...

  4. PIC_GIF_Decode(wallpaper_buf);

  5. bg_picture.header.cf = LV_IMG_CF_TRUE_COLOR;
  6. bg_picture.header.always_zero = 0;
  7. bg_picture.header.reserved = 0;
  8. bg_picture.header.w = image_width;
  9. bg_picture.header.h = image_height;
  10. bg_picture.data_size = image_size;
  11. bg_picture.data = wallpaper_buf;

  12. lv_obj_remove_style(wallpaper_obj, &style_bg, LV_PART_MAIN);
  13. lv_style_set_bg_img_src(&style_bg, &bg_picture);
  14. lv_obj_add_style(wallpaper_obj, &style_bg, LV_PART_MAIN);

  15. ...
复制代码
---------------------------------------------------------------------------------
GIF原图
background_image_99.gif
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 19:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表