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.mzph.cn/web/71587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】Socket

Socket 是网络通信的核心技术之一,充当应用程序与网络协议栈之间的接口。 1. Socket 定义 Socket(套接字)是操作系统提供的 网络通信抽象层,允许应用程序通过标准接口(如 TCP/IP 或 UDP)进行数据传输。它…

Apache XTable:在数据湖仓一体中推进数据互作性

Apache XTable 通过以多种开放表格式提供对数据的访问,在增强互作性方面迈出了一大步。移动数据很困难,在过去,这意味着在为数据湖仓一体选择开放表格式时,您被锁定在该选择中。一个令人兴奋的项目当在数据堆栈的这一层引入互作性…

anolis8.9-k8s1.32-node-二进制部署

一、系统 # cat /etc/anolis-release Anolis OS release 8.9 # uname -r 5.10.134-18.an8.x86_64 二、从master上拷贝dockers及cri-docker相关文件 # groupadd docker # mkdir /etc/docker# scp -P 4033 root192.168.7.201:/etc/systemd/system/containerd.service /etc/s…

《AJAX:前端异步交互的魔法指南》

什么是AJAX AJAX(Asynchronous JavaScript and XML,异步 JavaScript 和 XML) 是一种用于创建异步网页应用的技术,允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面内容。尽管名称中包含 XML&…

Python 性能优化:从入门到精通的实用指南

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

利用 requestrepo 工具验证 XML外部实体注入漏洞

1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…

FreeRTOS第17篇:FreeRTOS链表实现细节05_MiniListItem_t:FreeRTOS内存优化

文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 1 为什么需要迷你列表项? 在嵌入式系统中,内存资源极其宝贵。FreeRTOS为满足不同场景需求,设计了标准列表项(ListItem_…

Spring 无法解决循环依赖的 5 种场景

一、构造器注入引发的循环依赖 1. 问题复现 Component public class ServiceA {private final ServiceB serviceB;Autowiredpublic ServiceA(ServiceB serviceB) { // 构造器注入this.serviceB serviceB;} }Component public class ServiceB {private final ServiceA servic…

Core Vision Kit(基础视觉服务)

文章目录 一、Core Vision Kit简介场景介绍约束与限制二、通用文字识别三、人脸检测一、Core Vision Kit简介 Core Vision Kit(基础视觉服务)是机器视觉相关的基础能力,例如通用文字识别(即OCR,Optical Character Recognition,也称为光学字符识别)、人脸检测、人脸比对…

第TR3周:Pytorch复现Transformer

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 Transformer通过自注意力机制,改变了序列建模的方式,成为AI领域的基础架构 编码器:理解输入,提取上下文特征…

FreeRTOS 任务间通信机制:队列、信号量、事件标志组详解与实验

1. FreeRTOS 消息队列 1.1 简介 ​ 队列是 任务间通信的主要形式,可用于在任务之间以及中断与任务之间传递消息。队列在 FreeRTOS 中具有以下关键特点: 队列默认采用 先进先出 FIFO 方式,也可以使用 xQueueSendToFront()实现 LIFO。FreeRT…

【虚拟化】Docker Desktop 架构简介

在阅读前您需要了解 docker 架构:Docker architecture WSL 技术:什么是 WSL 2 1.Hyper-V backend 我们知道,Docker Desktop 最开始的架构的后端是采用的 Hyper-V。 Docker daemon (dockerd) 运行在一个 Linux distro (LinuxKit build) 中&…

Unity光照之Halo组件

简介 Halo 组件 是一种用于在游戏中创建光晕效果的工具,主要用于模拟光源周围的发光区域(如太阳、灯泡等)或物体表面的光线反射扩散效果。 核心功能 1.光晕生成 Halo 组件会在光源或物体的周围生成一个圆形光晕,模拟光线在空气…

Flink深入浅出之01:应用场景、基本架构、部署模式

Flink 1️⃣ 一 、知识要点 📖 1. Flink简介 Apache Flink — Stateful Computations over Data StreamsApache Flink 是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以…

2025年【高压电工】报名考试及高压电工考试总结

随着电力行业的快速发展,高压电工成为确保电力系统安全稳定运行的重要一环。为了提高高压电工的专业技能和安全意识,“安全生产模拟考试一点通”平台特别整理了2025年高压电工报名考试的相关信息及考试总结,并提供了一套完整的题库&#xff0…

网络HTTP

HTTP Network Request Library A Retrofit-based HTTP network request encapsulation library that provides simple and easy-to-use API interfaces with complete network request functionality. 基于Retrofit的HTTP网络请求封装库,提供简单易用的API接口和完…

os-copilot安装和使用体验测评

简介: OS Copilot是阿里云基于大模型构建的Linux系统智能助手,支持自然语言问答、命令执行和系统运维调优。本文介绍其产品优势、功能及使用方法,并分享个人开发者在云服务器资源管理中的实际应用体验。通过-t/-f/管道功能,OS Cop…

Python Flask框架学习汇编

1、入门级: 《Python Flask Web 框架入门》 这篇博文条理清晰,由简入繁,案例丰富,分十五节详细讲解了Flask框架,强烈推荐! 《python的简单web框架flask【附例子】》 讲解的特别清楚,每一步都…

【HarmonyOS Next之旅】DevEco Studio使用指南(一)

目录 1 -> 工具简介 1.1 -> 概述 1.2 -> HarmonyOS应用/服务开发流程 1.2.1 -> 开发准备 1.2.2 -> 开发应用/服务 1.2.3 -> 运行、调试和测试应用/服务 1.2.4 -> 发布应用/服务 2 -> 工程介绍 2.1 -> APP包结构 2.2 -> 切换工程视图 …

Manus开源平替-开源通用智能体

原文链接:https://i68.ltd/notes/posts/250306-opensource-agi-agent/ OWL-比Manus还强的全能开源Agent OWL: Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation,现实世界中执行自动化任务的通用多代理辅助优化学习…