当前位置: 首页 > article >正文

LVGL直接解码png图片的方法

       通过把png文件解码为.C文件,再放到工程中的供使用,这种方式随时速度快(应为已经解码,代码中只要直接加载图片数据显示出来即可),但是不够灵活,适用于哪些简单又不经常需要更换UI的场景下使用。如果面对一下较为复杂的工程,而且UI经常需要更新的情况,更使用使用图片解码库,程序运行时动态解码图片,这样图片原文件可以放在flash、SD卡等位置,当需要更新某个图片时,直接替换图片文件即可。

       下面以png图片为例,讲解LVGL如何通过png解码库直接解码png文件,从而实现LVGL动态解码png图片。LVGL已经无缝对接了 png 解码器,LVGL是对接lodepng 库来实现 PNG 图像的解码功能,我们只要打开该库,然后适当配置即可。

1. 在lv_conf.v文件中打开 LV_USE_PNG 宏,同时打开文件系统选项,如下图:

说明:

LVGL8.0及以上集成了文件系统的使用,不需要自己移植对应的文件系统IO操作接口。

LV_USE_FS_STDIO:SD 之类的外设中使用的,比如 STM32 和 esp32 等,使用此类文件系统接口。

LV_USE_FS_POSIX:Linux系统时使用

LV_USE_FS_WIN32:window系统时使用

LV_USE_FS_FATFS:通过自定义文件系统进行使用的。

2. 通过 lv_png_init() 初始化解码器。

3. 直接使用,使用方式分相对路径和绝对路径:

lv_obj_t *img = lv_img_create(activity->ui);
lv_img_set_src(img , "A:./res/list_icons/icon_heart.png");   //相对路径方式
lv_img_set_src(img , "A:/home/ubuntu/project/res/list_icons/icon_heart.png"); 

注意:因为配置是 LV_FS_POSIX_LETTER 'A',所以在路径中要添加 A: 进行匹配


http://www.kler.cn/a/578099.html

相关文章:

  • Matlab读取二维数据的csv文件,并绘制为一维的折线图
  • GCC RISCV 后端 -- GCC Passes 注释
  • 100天精通Python(爬虫篇)——第115天:爬虫在线小工具_Curl转python爬虫代码工具(快速构建初始爬虫代码)
  • Laya中runtime的用法
  • 机器学习之强化学习
  • Locker 是 Godot 的一个开源插件,它提供了一种快速且可扩展的方式来使用不同的策略保存和加载数据,并且具有开箱即用的 JSON 和加密功能。
  • 【Windows下Gitbook快速入门使用】
  • 【GPT入门】第5课 思维链的提出与案例
  • 2. 电脑主机上配置机器人环境(具身智能机器人套件)
  • MQ 消息发送可靠性保证 —— 整合 Spring Retry 重试框架 + 补偿发送方案
  • 【网络协议详解】——路由策略技术(学习笔记)
  • Apache Kafka 在生产环境中的管理与优化:从理论到实践
  • manus本地部署使用体验
  • 使用 Java 执行 SQL 语句和存储过程
  • [含文档+PPT+源码等]精品基于Python实现的校园小助手小程序的设计与实现
  • Java面试第九山!《SpringBoot框架》
  • Golang:实时消息交互系统
  • 物联网中 对设备监测和设备控制
  • C语言学习笔记-进阶(7)字符串函数3
  • 树莓派学习(一)——3B+环境配置与多用户管理及编程实践