在Lvgl中添加自定义字体和图片
在Lvgl中添加自定义字体和图片
Author: @kkl
写在前面
仅仅保证对于X-TRACK
项目的自定义字体和图片的有效使用哦!
Font convert - 字体格式转换成.c文件
生成
首先我们要访问到Lvgl官方网站上的Online Font Converter.
网址:https://lvgl.io/tools/fontconverter
然后我们会看到以下页面!
- Name
填写.c文件的名字,如font_smliey_36
,36表示字号大小,这样就清晰明了!
- Size
填写字号大小,刚刚我们名字写了font_smliey_36
,字号是36,那我们这里就填写36px的字号大小,统一格式规范。
- Bpp(bit-per-piel)
填写Bpp为4,这个值会让字体看起来更顺滑而且占据的内存空间相对不大(填别的也行,自己尝试对比一下
- Fallback
这里填写和Name一样的font_smliey_36
就行啦!
- 三个选项框都不要勾选!
不然生成的字体在X-TRACK
没法用!
- TTF/WOFF file
在这里选择我们准备好的字体文件,推荐用ttf
格式。
- Range
这里是设置范围来选择你的.c文件需要包含哪些文字(Symbols),我们不用这个,这里空着,我们直接在下面的Symbols栏里面写我们需要的字。
- Symbols
在这里我们填入希望在Lvgl里使用的文字,比方说我想要在Lvgl里显示鸡你太美
,那我就需要在这个栏里填入鸡你太美
。
- 点击红色的Convert按钮等待.c文件的渲染和下载即可!
修改
首先打开刚刚生成的.c文件,如font_smiley_36.c
- 找到注释
KERNING
和注释ALL CUSTOM DATA
之间的一大串,注释掉或者删掉!
1 |
|
- 将注释
ALL CUSTOM DATA
和注释PUBLIC FONT
之间的一大坨,用以下代码替换掉!
1 |
|
- 最后,删除注释
PUBLIC FONT
下的.fallback
和.user_data
1 |
|
- 最后拿去Lvgl仿真或者MCU跑一下,基本上没有问题啦!
Pictures convert - 图片格式转换成.c文件
LVGL官方在线图片转换器(LVGL Online Image Converter): https://lvgl.io/tools/imageconverter
这里主要讲解使用代码中的变量(存储着像素值的C数组)进行图像显示。
首先,我们打开LVGL官方在线图片转换器,可以看到以下最新(截止2024.12.26)的应用界面:
- Select image file(s):选择图片文件,可批量选择,记得修改文件名,因为稍后生成的c文件是和图片文件同名的
- Color format:设置颜色格式
- 一般的彩色图片,选择
CF_TRUE_COLOR_ALPHA
- 如果想要省空间,图片想要显示成纯白色的,可以选择
CF_INDEXED_X_BIT
,X
越大图片内存越大也越清晰,X
越小图片内存越小锯齿越明显 - 如果想要省空间,图片想要显示成纯黑色的,可以选择
CF_ALPHA_X_BIT
,X
越大图片内存越大也越清晰,X
越小图片内存越小锯齿越明显
- Output format:可以选择输出的文件格式,C数组或者bin文件(bin文件需要配合LVGL的文件系统使用),这里选择C数组(C array)即可
- Dither images (can improve quality):加入图像抖动算法,可以提升图像最终质量(这里不打勾)
- Output in big-endian format:以
big-endian
格式输出(这里不打勾)
全部选择好了之后就可以点击Convert
即可!
写在后面
在Lvgl中添加自定义字体和图片
https://zhangkeliang0627.github.io/2024/03/21/Lvgl添加自定义字体和图片/README/