在CSDN发现一个很不错的工具 – MCU_Font_Release
最近弄一个项目用到了LVGL,然后需要中英文切换,官方也提供一个转换工具,不过需要有字库,而且操作起来非常复杂。链接:MCU_Font_Release
假如你找的字库没有中英文,那就和lvgl默认提供的字库不兼容,也就是中文和英文要分开显示。这是一个不合理的做法。
LVGL默认提供的字库是非常大,它是英文及字符全量的库,非常庞大,非常耗资源。我在想肯定有大牛也遇到这些问题,果真,我在开源网站CSDN就找到了。解决了我的问题。使用MCU_Font_Release资源也省了,它可以按需生成对应的字库。中英文,甚至日语,韩语,图标全部否能混搭使用,非常方便的一个工具。它使用也很方便,它可以自动的提取源文件的字符,然后生成字库,这一点我是觉得牛逼的地方。目前我已经使用这个工具来开发我的项目了,已将官方的:fontconverter,完全摒弃了。
MCU_Font 自动字模提取工具
「重要提示:为了支持多国语言,目前本软件使用 UTF-8 编码读取源程序,如果你的源程序文件为 GB2312 或其他编码 则请转为 UTF-8编码。可以使用 notepad++ 转为 UTF-8 编码,但 keil 编辑器的编码可以任然使用 GB2312。」
【正点原子战舰V3_多国语言示例】 https://gitee.com/WuBinCPP/MCU_Font_Release/tree/master/战舰V3_MCU_Font示例
-
做这个软件的初衷
当我们要在单片机或其他一些小型系统中显示非英文字符如汉语、韩语,同时又不想将整个字库刷到设备中时,我们就需要将我们用到的这些字符一个个地使用取模软件取出字模数据放到我们的程序中,操作相当繁琐。因此我就想做一个工具,能够自动从我们的代码中提取需要显示的字符,自动的转换为字模数据,而且显示方便。 -
使用演示 LVGL中同时显示中文、韩文、日文、以及图标字体
这里我们使用LVGL的 lv_demo_printer_scr 仿真示例程序,我使用的环境为 Qt Creator。LVGL 官方 lv_demo_printer 示例运行后如下:
接下来使用我的小工具 MCU_Font 在上面界面中同时显示 中文、 韩文、日文、以及图标字体。
首先打开 MCU_Font 工具,打开后界面如下:
导出字体名称:生成的字体文件名称 这里我们填 “lv_font_montserrat_22” LVGL 在本示例中 使用了这个字体
导出字体路径:导出的字体文件存放的路径,这里根据你们的实际存放路径来填,我的路径是 D:/webPro/littlevGL/pc_sim_lvgl/pc_sim_lvgl/lvgl/src/lv_font
读取路径添加:添加需要提取字符的程序代码路径,可以选文件也可以选文件夹。如是文件夹的话会遍历该文件夹内部所有文件,但不会递归继续读取下层文件夹。这里我直接选择 demo 的.c文件 lv_demo_printer.c,如下图
「重要提示:为了支持多国语言,目前本软件使用 UTF-8 编码读取源程序,如果你的源程序文件为 GB2312 或其他编码 则请转为 UTF-8编码。可以使用 记事本直接打开c文件直接另存为,编码方式 选择 UTF-8 编码,但 keil 编辑器的编码可以任然使用 GB2312。」
由于我们要显示多种字体,点击左上角多字体按钮后进入如下界面:
按照上图所示设置字体,软件会先从第一个字体查找字符,如查不到字符再从下一个字体查找,因此排在靠前的字体优先级高一些。当所有选择的字体都查不到该字符时会弹出提示。
第二个为韩文字体,第三个为日文字体,这两个都是Window系统自带的,最后一个为图标字体,接触过前端的人应该都知道这种字体,需要到 FontAwesome 官网下载该图标字体的字体文件并安装后,便可在 MCU_Font 工具里选择该字体。
这里设置字体大小时最好保证每种字体行高差不多。文章来源:https://www.toymoban.com/news/detail-822633.html
抗锯齿我们选择 4bpp 。
接下来我们按如下所示将 LVGL的 demo 代码中的英文改为中文、韩文、日文以及图标:文章来源地址https://www.toymoban.com/news/detail-822633.html
icon = add_icon(box, &lv_demo_printer_img_copy, "加油",
到了这里,关于MCU_Font_Release,好用的LVGL的多语言转换工具!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!