首页 > 其他分享 >ESP32 LVGL:使用图标解决图片过大存不下的问题

ESP32 LVGL:使用图标解决图片过大存不下的问题

时间:2024-01-28 21:44:41浏览次数:26  
标签:图标 ESP32 过大存 lv LVGL 转为 TTF 图片

原文:ESP32 LVGL:使用图标解决图片过大存不下的问题_lvgl生成的图片太大-CSDN博客

文章目录
背景
方法
将PNG图片转为字库文件
LVGL加载自定义字体图标
参考
背景
在LVGL中,用将图片转为C语言数组的方式储存的时候,图片转换的数组过大,当图片过多时会出现存不下的问题。
因此,可以使用字库图标解决该问题。

方法
将PNG图片转为字库文件
首先,我们将图片通过PS转为SVG矢量图,然后再用SVG转TTF工具转为TTF字库,过程如下:
打开阿里妈妈创意中心
点击资源管理->我的项目,

新建项目并上传图标,然后点击下载至本地:

如下:就得到了本项目中所有的图标文件


然后再用TTF转C数组工具转为数组。如下所示:


LVGL加载自定义字体图标
在要使用图标的地方声明字库:
LV_FONT_DECLARE(MyMusix);
使用代码如下:

#define MY_USB_SYMBOL "\xEE\xA4\x91"

lv_obj_t* MyLabel_1 = lv_label_create(MyObj_1)
lv_obj_set_style_text_font(MyLabel_1, &MyMusix, LV_PART_MAIN);
lv_label_set_text(MyLabel_1, MY_USB_SYMBOL);

其中#define MY_USB_SYMBOL "\xEE\xA4\x91"为字库文件中包含的字体文件编码的UTF8格式,例如本字库中包含的字的UNICODE编码为:0XE911

将0XE911转换为UTF8格式为:""\xEE\xA4\x91"",转换工具如下;
UNICODE转UTF8

此外,还要注意:1、字体文件编码和使用处文件的编码格式都要是UTF8格式。2、字体文件结尾不能是数字。

最终:
显示效果如下:


参考
将PNG转为TTF再转为C文件
阿里巴巴矢量图图标
矢量图在线免费
LVGL显示汉字
LVGL教程
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/wcc243588569/article/details/131722688

标签:图标,ESP32,过大存,lv,LVGL,转为,TTF,图片
From: https://www.cnblogs.com/bruce1992/p/17993467

相关文章

  • NanoFramework操作ESP32(一)_基础元器件篇(三十七)_ SD读卡器模块
    二、示例代码1、代码:元器件的针脚ESP32模块的针脚GND;供电脚-GND3v3;供电脚+3v3CS MOSI SCK MISO GND ......
  • NanoFramework操作ESP32(一)_基础元器件篇(二11)_土壤湿度传感器
    编号名称功能1AO模拟输出2DO数字输出3GND电源地4VCC电源正......
  • NanoFramework操作ESP32(一)_基础元器件篇(二十九)_雨滴传感器
    一、元器件介绍  WaterSensor水位传感器是一款简单易用、性价比较高的水位/水滴识别检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。可使用模拟信号接收。1、针脚用途2、电气参数二、示例代码1、代码:元器件的针脚ESP32模块......
  • 微雪ESP32-S3-Zreo学习笔记之WS2812
    板载WS2812板载1颗WS2812连接IO21软件下载ESP32-S3-Zero没有板载USB转串口,无法实现自动下载。下载软件时要按住Boot按键再上电,此时电脑会识别到一个USB模拟的COM口,可用于下载软件。开发环境编程环境是使用的esp-idf-4.4.2;安装esp-idf-5.0.2、esp-idf-5.1.2都不能正常使用......
  • ESP32-S3 通过USB Serial更新固件
    本文主要介绍ESP32-S3在ubuntu20.04下通过ESP32-S3的USBSerial更新固件的方法以及遇到的问题的解决方法。现在市面上ESP32-S3的开发板,大多都是ESP32-S3搭配一个USB-To-Serial桥芯片(CP210X、CH340等)来使用,硬件上再设计一个自动烧录电路(如下所示),以达到通过串口实现固件更新的......
  • NanoFramework操作ESP32(一)_基础元器件篇(二十二)_DHT11温湿度传感器
    一、元器件介绍1、针脚用途编号名称功能1VCC电源正2TRIG触发控制信号输入3ECHO回响信号输出4GND电源地2、电气参数 二、示例代码1、代码:元器件的针脚ESP32模块的针脚VCC;供电脚+5VTRIG;发送脚IO17ECHO;接收脚IO16GND......
  • 微雪ESP32-S3-Zreo学习笔记之USB串口
    软件下载ESP32-S3-Zero没有板载USB转串口,无法实现自动下载。下载软件时要按住Boot按键再上电,此时电脑会识别到一个USB模拟的COM口,可用于下载软件。开发环境编程环境是使用的esp-idf-4.4.2;值得注意的是在此之前安装了esp-idf-5.0.2、esp-idf-5.1.2都不能正常使用,安装好后使......
  • 基于ESP32C3的伺服电机控制
    本文选择中菱6.5寸机器人agv轮毂伺服电机进行学习。产品概述:ZLAC8015D为高性能数字式伺服双轮毂电机驱动器,系统结构简单,集成度高,集成了485和CAN总线通讯及单轴控制器功能。特点:1、采用CAN总线通讯,支持CANopen协议的CiA301及CiA402子协议,最多可挂载127个设备;C......
  • 基于ESP32C3与RS485模块实现Modbus通讯
    参考网页:https://lingshunlab.com/book/esp32/esp32-use-rs485-model-to-modbus-by-library-emodbushttps://www.elecfans.com/d/2040842.htmlMODBUS是一种广泛使用的工业通信协议,它允许通过串行线路在不同设备之间进行通信和数据交换。RS485模块是一个在ESP32上实现MODBUS协......
  • NanoFramework操作ESP32(二)_网络协议篇(一)_Wifi
    一、扫描WifiWifiHelperwifiHelper=newWifiHelper();WifiAvailableNetwork[]net=wifiHelper.Wifi_Scan();for(inti=0;i<net.Length;i++){Debug.WriteLine($"WIFI名称(SSID):{net[i].Ssid},MAC地址(BSSID):{net[i].Bsid},信号强度(rssi):{net[i......