LVGL开发教程-img图片

news2024/11/17 10:48:59

系列文章目录

知不足而奋进 望远山而前行


目录

系列文章目录

文章目录

前言

1. 显示静态图像

2. 显示动态图像gif

3. 文件系统使用

总结


前言

在嵌入式系统中,使用LVGL(Light and Versatile Graphics Library)显示静态和动态图像是一个关键的开发任务。这篇文章将详细介绍如何在LVGL中集成和显示图像,无论是静态的二维码还是动态的GIF动画。通过清晰的步骤和示例代码,读者将了解如何将图像资源有效地整合到嵌入式应用程序中,从而增强用户界面的视觉吸引力和功能性。


在lvgl中显示一张图片,并不是一件容易的事情,我们首先需要将图片转成C代码,然后再对图片进行声明,最后就是显示它.

1. 显示静态图像

例如, 我想将我的二维码显示在页面中, 我们该怎么做呢?

  1. 找一张图片

  1. 打开Image Converter — LVGL 将图像转成C代码

  1. 将导出的文件拷贝到工程中
  2. 在要使用的文件中,声明这张图片 LV_IMG_DECLARE(图片的名称)

下面是显示图片的示例代码

 // 显示图片
lv_obj_t* obj_img = lv_img_create(root);
lv_img_set_src(obj_img, &bilibili);
lv_obj_align(obj_img,LV_ALIGN_BOTTOM_LEFT,10,-10);

2. 显示动态图像gif

gif的图像代码生成步骤与上面的步骤相同, 需要注意的是若想正常显示gif, 需要在lv_conf.h文件中开启GIF功能

#define LV_USE_GIF 1

// 加载外星人动画
lv_obj_t* obj_gif = lv_gif_create(root);
lv_gif_set_src(obj_gif, &astro_gif);
lv_obj_align(obj_gif, LV_ALIGN_BOTTOM_RIGHT, -10, -10);

程序运行起来之后,就可以看到外星小人在不停的转

📎astronaut_ezgif.c

gif处理网站:

ezgif.com free online animated GIF editor

Remove the Background from a GIF – Online GIF Tools

docsmall - 免费的在线图片、PDF处理工具

3. 文件系统使用

调用文件系统中的图片, 请参考ARM32开发-fat_fs文件系统-CSDN博客


总结

显示图像在LVGL中涉及几个重要步骤:首先,图像需要转换为C代码格式,这可以通过LVGL提供的在线工具完成。其次,将生成的图像文件集成到项目中,并在代码中声明它们。对于静态图像,使用 lv_img_create 和 lv_img_set_src 函数即可简单地显示图像。而对于动态GIF图像,需在 lv_conf.h 中启用GIF功能,并使用 lv_gif_create 和 lv_gif_set_src 函数来加载和显示动画。

确保配置正确并遵循正确的集成步骤是确保图像在LVGL中正常显示的关键。LVGL作为一款轻量级且功能强大的图形库,为开发者提供了构建交互式和视觉吸引力强的嵌入式图形界面的理想工具。通过本文提供的指导,希望能帮助开发者顺利应用LVGL来实现他们的图像显示需求,从而为用户带来更好的使用体验和界面效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1839232.html

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

相关文章

如何使用Indicator-Intelligence收集与威胁情报相关的域名和IPv4地址

关于Indicator-Intelligence Indicator-Intelligence是一款针对威胁情报的强大数据收集工具,该工具可以帮助广大研究人员通过威胁情报活动中生成的静态文件来查找与威胁行为相关的域名和IPv4地址。 需要注意的是,请在目标组织授权后再使用该工具进行安…

【病毒分析】Steloj勒索病毒分析

1.背景 1.1 来源 近期,Solar团队收到某汽车制造公司的援助请求,该公司的计算机服务器受到了Steloj勒索家族的侵害,所有的文件被加密并且添加了.steloj后缀,该勒索软件的初始入侵方式是MSSQL数据库弱口令进行入侵,后续…

北京崇文门中医医院贾英才:中医传承的践行者

贾英才,一位在北京崇文门中医医院出诊的杰出中医执业医师,在中医领域深耕近三十载,以其精湛的医术和独特的诊疗验方体系,赢得了广大患者的信赖与认可。 贾英才自幼便深受家学熏陶,中医的种子早早在他心中扎根。成长于中…

Unbounded CKKS for Bits NTT with Composite Modulus

参考文献: [CHKKS18] Cheon J H, Han K, Kim A, et al. Bootstrapping for approximate homomorphic encryption[C]//Advances in Cryptology–EUROCRYPT 2018: 37th Annual International Conference on the Theory and Applications of Cryptographic Techniques…

PAT B1018.锤子剪刀布

题目描述 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图3-1所示。 现给出两人的交锋记录,请统计双方的胜、平、负次数,并给出双方分别出什么手势的胜算最大。输入格式 第一行给出正整数N(≤10),即双方交锋的次数。随后N行,每行给…

【计算机网络仿真实验-实验2.7】单臂路由

实验2.7 单臂路由 1. 实验拓扑图 2. 测试连通性 测试PC1 PC2 PC3 之间的连通性 无法ping通,因为它们处在不同的网段,而二层交换机不具备路由功能,因此没办法接通 3. 在交换机上创建vlan10,并将端口0/2划分到vlan10中 Switch>…

[Python学习篇] Python公共操作

公共运算符 运算符描述支持的容器类型合并字符串、列表、元组*复制字符串、列表、元组in元素是否存在字符串、列表、元组、字典not in元素是否不存在字符串、列表、元组、字典 示例: 字符串 str1 ab str2 cd print(str1 str2) # abcd print(str1 * 3) # ab…

【网络安全学习】漏洞扫描:- 02- nmap漏洞扫描

1.nmap的介绍 Nmap是一款功能强大的网络探测和安全扫描工具,可以对目标进行端口扫描、服务探测、操作系统指纹识别等操作。 Nmap自带了许多内置的NSE脚本,它们可以根据不同的目标和场景来执行不同的功能。这些脚本存放在Nmap安装目录**/usr/share/nmap…

防爆监测系统:工业安全百科

防爆监测系统,作为现代工业安全领域的重要组成部分,对于预防和控制爆炸事故具有不可替代的作用。该系统集成了先进的传感技术、信号处理技术以及自动控制技术,实现对工业生产环境中潜在爆炸因素的实时监测和预警。 防爆监测系统能够精确识别…

【代码随想录】【算法训练营】【第43天】 [518]零钱兑换II [377]组合总和IV [卡码57]爬楼梯

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 部分题目来自卡码网。 day 43,极其困难的周三~ 题目详情 [518] 零钱兑换II 题目描述 518 零钱兑换II 解题思路 前提:假设每一种面额的硬币有无限个,求组合数…

LVGL开发教程-Label文本

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 ​编辑 1. 文本显示 2. 使用字体 总结 前言 在嵌入式系统开发中,文本显示是一项基本而重要的功能。使用 LittlevGL(LVGL)库,我们可以轻松地创建…

华润的超市卡有什么用?

现在都很少有人会直接去超市买东西了,一般都是网购或者叫外卖啥的 最近我朋友送了张华润的礼品卡,但是感觉也没什么要买的 一边担心卡过期,一边发愁买什么 还好发现了收卡云啊,最后把卡在收卡云上卖掉了,到账速度贼…

org.springframework.boot:spring-boot-starter-parent:pom:2.3.4.RELEAS

前言 git上拉了一个项目构建过程中无论是clean还是install都报错 注:很看不惯某博主一点简单的经验分享都要开VIP才能查看的作风 org.springframework.boot:spring-boot-starter-parent:pom:2.3.4.RELEASE failed to transfer from https://maven.aliyun.com/rep…

免费的ai创作软件,各维度的盘点一下!

随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面,其中就包括内容创作领域。近年来,越来越多的免费AI创作软件涌现出来,为广大创作者提供了全新的创作方式和工具。那么,这些软件究…

C语言——扫雷小游戏

扫雷小游戏: 游戏最终效果: 1.先写一下游戏开始的简单界面。 用一个函数来写一下 void menu() {printf(" ---------------------------- \n");printf("| 1.play |\n");printf("| 0.exit …

工业 web4.0,UI 风格令人赞叹

工业 web4.0,UI 风格令人赞叹

揭秘后勤报修管理系统:目的明确,功能设计模块助您轻松管理

在数字化、信息化飞速发展的今天,企业后勤报修也迎来了前所未有的变革。传统的报修方式,如电话报修、纸质报修单等,已逐渐无法满足现代企事业单位对高效、便捷、精准报修服务的需求。因此,后勤报修管理系统应运而生,后…

ThinkPHP5大学生社会实践管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP5大学生社会实践管理系统 一 介绍 大学生社会实践管理系统基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:ThinkPHP5mysqlbootstrapphpstudyvscode 二 功…

Upload-Labs:Pass - 1(JS前端白名单)

Pass_1 1. 上传测试2. 代码审计**获取文件输入的值**:**检查是否选择了文件**:**定义允许的文件类型**:**提取文件的扩展名**:**检查文件类型是否允许上传**:**构建错误消息并提醒用户**: 3.绕过思路3.1 将…

2024-06-19,面试官问的问题

文章目录 1、采用minIO完成了图片存储,采用阿里云OSS服务器存储图片这两个功能面试官理解为重复,面试官又问minIO怎么同步到OSS?2、讲一下ThreadLocal?3、为什么用ThreadLocal存数据?4、redis有几种数据结构&#xff1…