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.rhkb.cn/news/31097.html

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

相关文章

【算法day5】最长回文子串——马拉车算法

最长回文子串 给你一个字符串 s,找到 s 中最长的 回文 子串。 https://leetcode.cn/problems/longest-palindromic-substring/description/ 算法思路: class Solution { public:string longestPalindrome(string s) {int s_len s.size();string tmp …

JavaWeb-HttpServletRequest请求域接口

文章目录 HttpServletRequest请求域接口HttpServletRequest请求域接口简介关于请求域和应用域的区别 请求域接口中的相关方法获取前端请求参数(getParameter系列方法)存储请求域名参数(Attribute系列方法)获取客户端的相关地址信息获取项目的根路径 关于转发和重定向的细致剖析…

Dify 本地部署教程

目录 一、下载安装包 二、修改配置 三、启动容器 四、访问 Dify 五、总结 本篇文章主要记录 Dify 本地部署过程,有问题欢迎交流~ 一、下载安装包 从 Github 仓库下载最新稳定版软件包,点击下载~,当然也可以克隆仓库或者从仓库里直接下载zip源码包。 目前最新版本是V…

css错峰布局/瀑布流样式(类似于快手样式)

当样式一侧比较高的时候会自动换行,尽量保持高度大概一致, 例: 一侧元素为5,另一侧元素为6 当为5的一侧过于高的时候,可能会变为4/7分部dom节点 如果不需要这样的话删除样式 flex-flow:column wrap; 设置父级dom样…

Docker入门篇1:搜索镜像、拉取镜像、查看本地镜像列表、删除本地镜像

大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起开始入门第一篇:搜索镜像、拉取镜像、查看本地镜像…

利用pdf.js+百度翻译实现PDF翻译,创建中文PDF

基于JavaScript的PDF文档解析与智能翻译系统开发实践 一、功能预览 1.1 PDF加载 1.2 PDF翻译 二、系统架构设计 2.1 PDF智能翻译系统架构设计 层级模块名称功能描述技术实现呈现层Canvas渲染器PDF文档可视化渲染PDF.js + 动态视口计算 + 矩阵变换

虚函数和虚表的原理是什么?

虚函数是一个使用virtual关键字声明的成员函数,在基类中声明虚函数,在子类中可以使用override重写该函数。虚函数根据指针或引用指向的实际对象调用,实现运行时的多态。 虚函数表(虚表)是一个用于存储虚函数地址的数组…

运行OpenManus项目(使用Conda)

部署本项目需要具备一定的基础:Linux基础、需要安装好Anaconda/Miniforge(Python可以不装好,直接新建虚拟环境的时候装好即可),如果不装Anaconda或者Miniforge,只装过Python,需要确保Python是3.…

vulnhub靶场之【digitalworld.local系列】的vengeance靶机

前言 靶机:digitalworld.local-vengeance,IP地址为192.168.10.10 攻击:kali,IP地址为192.168.10.6 kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络 这里官方给的有两种方式&#xff…

纯html文件实现目录和文档关联

目录结构 效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>项目结题报告</title><style lang"scss">::-webkit-scrollbar {width: 6px;height: 6px;}::-webkit-scro…

计算机网络——交换机

一、什么是交换机&#xff1f; 交换机&#xff08;Switch&#xff09;是局域网&#xff08;LAN&#xff09;中的核心设备&#xff0c;负责在 数据链路层&#xff08;OSI第二层&#xff09;高效转发数据帧。它像一位“智能交通警察”&#xff0c;根据设备的 MAC地址 精准引导数…

Primer - 自适应学习,AI学习工具

android Primer - 自适应学习 链接&#xff1a;https://pan.xunlei.com/s/VOKv1kIghHXGSbjg3PIZnhWHA1?pwdwfn6# 【软件说明】&#xff1a;采用先进的自适应学习算法&#xff0c;能够迅速识别您当前的知识水平&#xff0c;并推荐新的学习主题。经过初步评估后&#xff0c;您…

【Vue3 Element UI - Plus + Tyscript 实现Tags标签输入及回显】

Vue3 Element Plus TypeScript 实现 Tags 标签输入及回显 在开发后台管理系统或表单页面时&#xff0c;动态标签&#xff08;Tags&#xff09; 是一个常见的功能需求。用户可以通过输入框添加标签&#xff0c;并通过关闭按钮删除标签&#xff0c;同时还需要支持标签数据的提…

程序员学习强化学习之基本概念的数学表达

基本概念 迷宫游戏为例 状态(State)&#xff1a;S {s1, . . . , s9} 行动(Action)&#xff1a;A {a1, . . . , a5} 状态转移(State transition)&#xff1a; 奖励(Reward)&#xff1a;r(s, a) 是 s和a的函数 序列(Trajectories) 策略1的序列&#xff1a; 策略2的序列&…

达梦数据库查看字符集编码

select SF_GET_UNICODE_FLAG(); 返回 0 代表数据库字符集编码为 GB18030 1 代表数据库字符集编码为 UTF-8 2 代表数据库字符集编码为韩文字符集 EUC-KR

【数据结构与算法】Java描述:第二节:LinkedList 链表

一、链表的概念与结构 1.1 概念&#xff1a; 通俗的来说&#xff0c;链表是由一个个结点连接起来的就叫链表。 1.2 结构&#xff1a; 链表存储的数据 在 物理上是不一定连续的&#xff0c;它是由前面链接后面&#xff0c;一个个连起来的。 二、Java底层的 LinkedList 2.1…

[Java基础-线程篇]7_线程设计模式与总结

摘要&#xff1a;懒汉单例模式怎么变得线程安全&#xff1f;Master-Worker归并模式&#xff0c;工作窃取算法。Java线程相关源码使用了什么设计模式&#xff1f; 资料引用&#xff1a;《Java高并发核心编程卷2》 目录 线程安全的单例模式 Master-Worker模式 工作窃取算法 …

RabbitMQ高级特性--消息确认机制

目录 一、消息确认 1.消息确认机制 2.手动确认方法 二、代码示例 1. AcknowledgeMode.NONE 1.1 配置文件 1.2 生产者 1.3 消费者 1.4 运行程序 2.AcknowledgeMode.AUTO 3.AcknowledgeMode.MANUAL 一、消息确认 1.消息确认机制 生产者发送消息之后&#xff0c;到达消…

NodeJS学习笔记

NodeJS软件安装 node环境安装&#xff1a; https://nodejs.org 安装好后的node通常在C:\Program Files\nodejs验证安装是否成功 node -v npm -v 进入REPL模式命令行模式 nodeNodeJS在REPL模式和编辑器使用 windos在dos下常用命令 windos命令&#xff1a; 1、cmd dos系统2、…

Unity 实现在模型表面进行绘画

Texture2D-SetPixels32 - Unity 脚本 API 实现思路 从笔尖位置发射射线获取画纸上碰撞位置的UV 纹理坐标以确认笔迹位置&#xff0c;射线检查碰撞的最大距离即笔尖距离画纸的最大距离&#xff0c;利用Texture2D.SetPixels32 实现对画纸贴图颜色的修改。 核心代码 发射一条以…