LVGL开发教程-img图片

系列文章目录

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


目录

系列文章目录

文章目录

前言

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

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

相关文章

索引与书架、新华字典的爱恨情仇

在MySQL的索引世界中,性能优化一直是开发者们关注的焦点。而索引,作为提升查询速度的关键技术之一,是非常重要的。索引根据存储类型可以分为聚簇索引(聚集)与非聚簇索引(非聚集),它们决定了数据在磁盘上的存储方式和查询时的访问路…

HANA 自动生成年月维度,指定起始即可生成

官方指导文档:SERIES_GENERATE Function (Series Data) | SAP Help Portal select * from SERIES_GENERATE_DATE(INTERVAL 1 MONTH, 2024-01-01, 2024-12-01) 以下示例生成范围从1999-01-01到1999-01-02的一系列时间戳,该时间戳以30秒的间隔递增&#…

重生之 SpringBoot3 入门保姆级学习(24、场景整合 kafka 消息发送服务)

重生之 SpringBoot3 入门保姆级学习(24、场景整合 kafka 消息发送服务) 6.4 消息发送服务 6.4 消息发送服务 访问 kafka-ui (注意这里需要换成你自己的服务器或者虚拟机的 IP 地址,虚拟机可以用局域网 192.168.xxx.xxx 的地址&…

引领未来建筑潮流:轻空间设计团队打造“淄博珍珠”

作为国内单体最大的气膜会展场馆,“淄博珍珠”自四年前启用以来,已成为淄博市的重要地标和经济引擎。该场馆首次亮相于第二十届中国(淄博)国际陶瓷博览会,凭借其独特的设计和先进的建筑理念,吸引了社会各界…

机器人、人工智能相关领域 news/events (专栏目录)

Some Insights 一些机器人、人工智能或相关领域的news、events等 专栏直达链接 1. 智能制造 - 你需要了解的 10 个基本要素 2. 现实世界中的人工智能:工业制造的 4 个成功案例研究 3. 企业使用人工智能情况调查 4. 未来工厂中的人工智能:人工智能加…

A comprehensive review of machine learning-based models for fake news detection

Abstract 互联网在假新闻传播中的作用使其成为一个严重的问题,需要复杂的技术来自动检测。为了应对 Facebook、Twitter、Instagram 和 WhatsApp 等社交媒体网站上误导性材料的快速传播,本研究探索了深度学习方法和各种分类策略领域。该研究特别调查了基…

Linux安装kvm虚拟机

kvm是基于内核的虚拟机,为什么要用kvm不用vmware、virtual box… 只有一个原因,它非常快!本机使用linux开发也是因为它快!linux在老电脑上都能流畅运行,更别说现代电脑,如果你觉得装Linux并没有比win快多少…

一文带你搞定Linux开发环境配置

Linux开发必备 万事先更新 sudo apt update && sudo apt upgrade安装gcc工具链 sudo apt install build-essential像mysql、nacos等等建议装docker里,数据挂载到宿主机,日志别挂,直接装本机哪天日志塞满了就要开始重装系统了 以下…

SpringCloud Alibaba Sentinel基础入门与安装

GitHub地址:https://github.com/alibaba/Sentinel 中文文档:https://sentinelguard.io/zh-cn/docs/introduction.html 下载地址:https://github.com/alibaba/Sentinel/releases Spring Cloud Alibaba 官方说明文档:Spring Clou…

商淘云:服装实体店引流会员营销方案

服装零售实体店面临着越来越大的挑战,尤其是在吸引和保持忠诚顾客方面。为了应对这一挑战,制定一套有效的引流会员营销方案显得尤为重要。商淘云将探讨如何通过创新的营销策略和增强的顾客体验,提升实体店的会员数量和销售业绩,从…

浪潮信息内存故障预警技术再升级 服务器稳定性再获提升

浪潮信息近日对其内存故障智能预警修复技术进行了全面升级,再次取得技术突破。此次升级后,公司服务器的宕机率实现了80%锐降,再次彰显了浪潮信息在服务器技术领域的卓越能力。 浪潮信息全新升级服务器内存故障智能预警修复技术MUPR (Memory …

2024年6月15日 (周六) 叶子游戏新闻

期刊杂志: 聚合读者、意林、知音、故事会、花火以及国内各大知名报纸电子版,无需付费即可观看各种免费资源 中医自学宝典: 集合了中医医案,医经,方剂 药材知识的app,更方便的免费学习中医知识 《赛博朋克2077》被取消DLC泄露&…

告别盲目决策!精益生产KPI指标管理系统让你的企业更聪明

在当今快速变化的商业环境中,企业为了保持竞争力,需要高效地追踪、分析和优化各种业务指标。为了实现这一目标,越来越多的企业开始引入指标管理系统,这一工具在提升管理效率和促进业务增长方面发挥着至关重要的作用。 一、什么是…

Neo4j 创建关系

Neo4j 创建关系 在 Noe4j 中,关系是我们用来连接图的两个节点的元素。 这些关系具有数据的方向、类型和形式模式。 本章教你如何 建立关系在现有节点之间创建关系使用标签和属性创建关系 建立关系 我们可以使用 CREATE 子句创建关系。 我们将在方括号[]中指定关系…

代理模式(静态代理/动态代理)

代理模式(Proxy Pattern) 一 定义 为其他对象提供一种代理,以控制对这个对象的访问。 代理对象在客户端和目标对象之间起到了中介作用,起到保护或增强目标对象的作用。 属于结构型设计模式。 代理模式分为静态代理和动态代理。…

中国首例!「DataKit」上架亚马逊云科技 Marketplace add-ons

在 2022 年的 re:Invent 大会上,亚马逊云科技宣布了一项重大更新:亚马逊云科技 Marketplace 为 Amazon Elastic Kubernetes Service(Amazon EKS)提供了附加组件的支持。这一创新功能极大地丰富了 EKS 的生态系统,使用户…

StarkNet System Architecture 系统架构

文章目录 Starknet架构排序器,证明器和节点、验证者、Starnet Core排序器 Sequencer证明器 Prover节点验证者StarkNet Core工作原理TransactionsStarknet架构 原文链接: https://david-barreto.com/starknets-architecture-review/#more-4602 StarkNet 有五个组成部分。分别…

从钉钉到跨境电商领域的技术演变,HHO如何通过NineData实现全球化业务布局

两氢一氧(HHO)是一家跨境出海电商平台,专注于通过数字化手段连接全球市场和中国优质供应链,致力于打造数字化时代的全球化新品牌。 创始人陈航,曾任钉钉 CEO 并成功打造行业领先的亿级活跃用户产品--钉钉。离开阿里后创…

CityEngine记录1:工程目录

CityEngine的工程目录结构对于理解和组织3D城市建模项目至关重要。以下是对CityEngine工程目录结构的详细解析: Assets: 存放模型的零件与纹理图片。这些资产通常用于在建模过程中为建筑物、道路、植被等元素添加详细的纹理和细节。 Data: …

无问芯穹Qllm-Eval:制作多模型、多参数、多维度的量化方案

前言 近年来,大语言模型(Large Models, LLMs)受到学术界和工业界的广泛关注,得益于其在各种语言生成任务上的出色表现,大语言模型推动了各种人工智能应用(例如ChatGPT、Copilot等)的发展。然而…