LVGL Online Font Converter

关键字 :NXPLVGL

 一、 概述

1.1 Font Converter 简介

LVGL 官方的字体转换工具 lv_font_conv 用于将电脑中的 .ttf 、 .woff 字体文件转换为C数组,进而使 LVGL 可以调用显示自定义的字体。此工具有在线版和离线版两个版本,这里先介绍在线版 lv_font_conv 的使用方法。离线版工具的安装使用可参考下一篇博文《LVGL Offline Font Converter》。

 

二、 Online Font Converter 使用

2.1 lv_font_conv 的使用

在线工具网址: https://lvgl.io/tools/fontconverter,打开网页后如下图。


图 1. 在线转换工具的使用

如上图,我们设置字体大小为 30,抗锯齿选用 4,抗锯齿数值越大,字体显示质量越高,不过空间占用也更多,选择微软雅黑的 ttf 字库,转换字符为“你好哇”,点击 Convert 即可转换。转换完成后如下图所示,会看到一个 .c 文件。


图 2. 转换完成的 .c

这个文件里面包含了转换的字体数组等先关内容,文件最后有一个结构体,我们在工程中调用的字体就是通过它实现的。


图 3. 字体结构体

 

三、 在工程中调用字体

将生成的字库 .c 添加到工程中,并在需要调用该字体的文件中声明字体的结构体,比如 extern lv_font_t my_font_MicrosoftYaHei_30;

3.1 直接使用原字体字符

IDE 支持 UTF-8 编码时,打开 LVGL UTF-8(默认开),可直接在代码中调用字符,如下图。


图 4. 开启 LVGL UTF-8 支持


图 5. 调用字体字符

如上图,我们可以直接在代码中调用字符“你好哇”,比较方便。

3.2 通过 Unicode 调用字符

有时不放方便直接代用字符,比如其他语言、图标等,这种情况下,我们就可以把要显示的字符转成 Unicode 编码,从而进行调用。

将字符转换成 Unicode 我用的是 emWin 的小工具 U2C,下载网址: https://www.segger.com/downloads/emwin/


图 6. U2C 小工具

U2C 的使用比较简单,先将要显示的字符保存为 .txt 文件,用 notepad++ 打开,保存为 UTF-8 BOM 编码,如下图。


图 7. 安装 lv_font_conv 工具

接着,打开 U2C 工具,选择刚刚的 .txt 文件,如下图,设置输出文件名及路径即可进行转换。


图 8. 选择输入文件


图 9. 设置输出文件名

转换完成之后可看到新生成的输出文件,打开文件,如下图,这些就是我们要在代码中调用的 Unicode 码,如下图。


图 10. 字符 Unicode 码

接下来就可以在代码中通过 Unicode 调用这些字符了,如下图。


图 11. 调用字符 Unicode

运行结果如下,两种方式均可实现字体字符的显示。


图 12. 字体显示效果

 

 

 

四、参考资料

(1)博客《LVGL笔记9--lv_font字体》 :

https://blog.csdn.net/qq_38685043/article/details/113762166?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162986989716780357249283%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162986989716780357249283&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-113762166.pc_search_result_cache&utm_term=LVGL+lv_font_conv+%E5%AD%97%E4%BD%93%E8%BD%AC%E6%8D%A2%E5%B7%A5%E5%85%B7&spm=1018.2226.3001.4187

(2)PDF 文档《正点原子 littleVGL 开发指南》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能