LVGL的多语言转换工具:MCUFontRelease

假如你找的字库没有中英文,那就和lvgl默认提供的字库不兼容,也就是中文和英文要分开显示。这是一个不合理的做法。

lvgl默认提供的字库是非常大,它是英文及字符全量的库,非常庞大,非常耗资源。

使用MCU_Font_Release资源也省了,它可以按需生成对应的字库。中英文,甚至日语,韩语,图标全部否能混搭使用,非常方便的一个工具。

它使用也很方便,它可以自动的提取源文件的字符,然后生成字库,这一点我是觉得牛逼的地方。

目前我已经使用这个工具来开发我的项目了,已将官方的:fontconverter,完全摒弃了。

1.做这个软件的初衷

因此我就想做一个工具,能够自动从我们的代码中提取需要显示的字符,自动的转换为字模数据,而且显示方便。

2.使用演示

LVGL中同时显示中文、韩文、日文、以及图标字体

LVGL官方lv_demo_printer示例运行后如下:

接下来使用我的小工具MCU_Font在上面界面中同时显示中文、韩文、日文、以及图标字体。

首先打开MCU_Font工具,打开后界面如下:

导出字体名称:生成的字体文件名称这里我们填"lv_font_montserrat_22"LVGL在本示例中使用了这个字体

「重要提示:为了支持多国语言,目前本软件使用UTF-8编码读取源程序,如果你的源程序文件为GB2312或其他编码则请转为UTF-8编码。可以使用notepad++转为UTF-8编码,但keil编辑器的编码可以任然使用GB2312。」

由于我们要显示多种字体,点击左上角多字体按钮后进入如下界面:

按照上图所示设置字体,软件会先从第一个字体查找字符,如查不到字符再从下一个字体查找,因此排在靠前的字体优先级高一些。当所有选择的字体都查不到该字符时会弹出提示。

这里设置字体大小时最好保证每种字体行高差不多。

抗锯齿我们选择4bpp。

接下来我们按如下所示将LVGL的demo代码中的英文改为中文、韩文、日文以及图标:

修改完以上代码后,我们先保存下,再切换到MCU_Font工具,点击生成。

1600240693195

最后出来如下提示,表示生成成功。

最后我们再次运行LVGL的demo程序如下所示:(可以看到最后一行同时显示中、韩、日及图标)

以后,如果你在你的源程序中新增了中文、韩文、日文或图标等字符,只需要先保存修改,再切换到MCU_Font点击生成就可以了。

3.图标字符提取

要使用图标字体需要到FontAwesome官网下载该图标字体并安装后,便可在MCU_Font工具里选择该字体。

安装完图标字体后,先选择图标字体、再点击字库浏览,如下图:

点击“字库浏览”后进入如下界面,图标字符的unicode编码默认是从0xF000开始的,如下图所示:

我们选择想要的图标后,便可以看到靠下侧的“字符符号”会显示相应符号。我们只要将该字符符号复制到我们的代码中保存后,再使用MCU_Font工具生成,便可显示该图标。

(V2.0版本中单击相应的图标单元格,软件将自动把字符拷贝到系统剪切板中)

4.定制图标(版本V2.0新增功能)

当字体图标FontAwesome中没有我们想要的图标时,我们可以使用定制图标功能来制作自己的图标字体。

在多字体设置中将第一种字体选择为【定制图标】(在字体列表中最后一项),还需再添加一种任意字体来设置大小,这里我们选择黑体,大小设置大点设为60,如下图所示。(排在前面的优先级高,我们将定制图标放在最前)

接下来我们在主界面中将字体切换到字体1即图标字体,然后点击字库浏览。

选择左上角e000的方格,再点击插入图片按钮(也可直接双击方格来插入图片),来选择一张图片。

(unicode编码E000-F8FF为私有区域,可以自定义使用,F000之后的已被图标字体FontAwesome使用,因此我们的定制图标默认从E000开始)

如下图添加了5张图片。插入图片后,单击相应的图片单元格,软件将自动把字符拷贝到系统剪切板中,之后我们只需要在LVGL代码中粘贴即可。

在LVGL中编写如下测试程序:

5.软件原理

软件先从我们的代码中取出需要显示的字符,然后将字符转为字模数据,再将字幕数据按照预定的格式存储为字体的.c文件,最后由单片机程序对字模数据解析并显示。

取出需要显示的字符

软件将自动提取所有被双引号""包围的字符,并会自动屏蔽掉被//和/**/注释掉的字符,头文件包含的双引号也会屏蔽。

将字幕数据按照预定的格式存储为字体的.c文件

字体文件格式

这里对未接触过LVGL字体格式的小伙伴做个提醒,生成的字体文件中的点阵数据不像我们平常在单片机中使用的字模。

首先每个字符的点阵数据所占字节数不相等,比如单引号","和"@"字符,他们所占的字节数是不相等的,这样做是为了节省空间将字符中空的行和列的地方不转化为点阵。这样的话就需要其他信息来控制字符的显示位置。因此字模数据中除了字模点阵数组、unicode数组外还有有个重要的数组glyph_dsc[],其内容如下:

.adv_w,字符宽度

.box_w,字模宽度

.box_h,字模高度

.ofs_x,字模水平方向偏移(右边为正向)

/*U+5f"_"*/{.bitmap_index=1974,.adv_w=152,.box_w=10,.box_h=1,.ofs_x=0,.ofs_y=-3},.../*U+67"g"*/{.bitmap_index=5824,.adv_w=264,.box_w=14,.box_h=19,.ofs_x=1,.ofs_y=-4},解析字体文件

程序会先得到待显示字符的UTF-8编码,然后将UTF-8转为uncode编码,再在字体文件中的unicode数组中查找对应的unicode编码的索引,再由索引查得glyph_dsc中相应字符的数据。由于unicode是按照升序排列可以使用中值查找法提高查找速度。

如要详细了解如何解析字体文件,可查看LVGL源码。

6.后记

QtCreator的编辑器是支持图标字体的,下面我们来在QtCreator编辑器中让他显示出来看看

先要将QtCreator的字体选择图标字体并应用如下图:

应用后可以看到编辑器中可以显示出图标字体的符号了,如下图:

但是其实使用图标字体后,编辑器的字体样式可能就不是我们喜欢的了,所以编辑器中还是选择我们自己喜欢的字体,图标看不到的话我们可以使用备注,或者做成宏定义就好了。

如想在无LVGL的程序中使用MCU_Font,需要在你的代码中修改字模数据的提取函数,可以参照LVGL的方式提取。可以参考以下示例:

7.软件获取地址

本软件如对你有帮助,可以打赏我一下,哈哈(点击MCU_Font软件的右下角“打赏”,1毛2毛也是对我的鼓励,哈哈)。你可以在gitee上查看使用说明,获取新版本或者给我留言。

审核编辑:郭婷

长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)

THE END
1.字体设计软件字体设计软件大全下载字体设计软件有哪些番茄下载站站提供国内外最新的字体工具下载,其中包含字体下载,字体设计,字体管家,字体下载大全等字体工具。想了解字体工具有哪些等更多内容,尽在番茄下载站字体工具下载!http://www.fqsoftdown.com/sort/26-hot/
2.手机字体APP下载好用的手机字体APP手机字体APP大全艺术设计是以平面设计为基础的,而字体设计又是平面设计的重要组成部分。因此不论是平面设计,抑或是字体设计,二者在人类的发展史上都发挥着不可磨灭的作用。 字体的重要性,可想而知,小编今天就给大家带来多年收集的手机字体APP大全,希望大家在工作学习中能熟练运用掌握!http://www.kkx.net/zt/88801.html
3.手抄手写字体在线生成,模拟手写字体,代替手抄在线手写字体生成工具技为了方便用户的二次创作和个性化需求,该工具提供了三种背景选择:自定义背景、A4背景和透明背景。这些背景具有很高的兼容性,可以方便地与其他软件进行配合使用。用户可以根据自己的需求选择合适的背景类型,并在此基础上进行进一步的创作和编辑。 七、结论 本文介绍了一款在线手写字体生成工具,该工具具备高逼真手写功能、多https://blog.csdn.net/xmk120801/article/details/144406990
4.字体下载系统字体下载专题字体下载大全专题,专为想给自己的电脑更换系统字体的人群使用。每天看腻了一成不变的系统字体,为何不去换一种字体,换一种视野,换一种体验呢?字体大全专题包含了各色各样的字体下载,有方正小标宋简体、楷体GB2312字体、微软雅黑字体等众多字体等你去下载安装。华军小编给大家整理推荐了各类免费的字体下载大全软件,赶https://m.onlinedown.net/zt/21227/
5.书法人必备!8款超实用书法APP,让练字效率直线提升10倍!!公认集字功能强大的一款软件,可以根据创作的内容,任意选择想要的字体和格式,快速集字,生成完整书法作品以供学习临摹。不过这个功能每月免费3次,后续要开通会员。 04 书法碑帖大全 类型:碑帖类。 一款提供古今书法大师碑帖作品的软件,可以下https://mp.weixin.qq.com/s?__biz=MzA5NjgzNDUzMQ==&mid=2247680308&idx=1&sn=151819792e1ca470d4b82ed4894f2db0&chksm=91bf7d231f9020ebd6a17c85f24a7615ea42778f40f97cb7c7509dfbf2827e57efa36bd5baed&scene=27
6.字体创作利器:5个强大的字体设计软件推荐字体设计作为设计中的一个重要模块,如果字体软件选择正确,将给字体设计工作带来极大的便利,易于使用的字体设计软件,可以创造出优秀的排版设计。在日常工作中,设计师可能会在字体网站上下载字体,然后安装字体包,这不仅浪费时间,而且影响设计进度。本文将推荐5个易于使用的字体设计软件,让我们一起理解它们。#设计# https://baijiahao.baidu.com/s?id=1783438664082823043&wfr=spider&for=pc
7.什么软件能自己做字体(2款简单好用字体app推荐)手迹造字是一款有趣的字体app,用户可以用这款应用创造一款属于自己的字体;并且,如果你的字体好看、有质感、被人相中了,还可以出售。 手迹造字app拥有强大的机器学习力,你只需要书写100个字,它就能根据你的笔顺、书写压感、笔迹粗细、字架结构、偏旁部首的紧凑。 https://pinkehao.com/infor/121949.html
8.做字体设计用什么软件好?这5款足够了字体设计在现代视觉传达中扮演着重要角色,而选择适合的字体设计工具是字体设计师必不可少的一步。那么,做字体设计用什么软件好?在众多的字体设计工具中,即时设计、FontCreator、RoboFont、Fontlab 8 和 Glyphs这 5 个软件备受设计师关注。一起来看看吧! https://js.design/special/article/doing-font-design.html
9.改变字体的软件有哪些好用的修改字体的软件推荐在做图片的过程中,许多朋友都需要对字体做更大的改动,改变字体的软件就派上了很大的用场,相信大家也知道很多的这种类型的软件,今天就让小编给大家介绍几款很好用的改变字体的软件,每一个里面都有大量的字体库,大家可以从字库中挑选出适合自己的字体,欢迎来下载使用吧。 https://www.wandoujia.com/strategy/9971000008021579631.html
10.技术宅:教你利用一些网站和软件做一套自己手写的字体?进行字符书写前首先要确定选择要书写的字符,软件提供国标GB-2312-80标准中的6763个汉字进行书写。这些是我已经完成的字符书写。 如果想直接书写某一个字,可以进行搜索,不用按照字符表的顺序。望远镜图标为搜索键。 完成字库录入后,直接点击“T”字图标 就直接将自己的手写字体安装到系统了。 https://www.360doc.cn/article/7863900_465589472.html
11.好看的字体软件排行榜前十名偏玩手游盒子分享十大好看的字体软件排行榜前十名手机应用,编辑为您推荐手机好看的字体软件排行榜第一名到前5名到前十名的应用。找好看的字体软件有哪些、好看的字体软件哪个好用,上偏玩手游盒子https://m.pianwan.com/s/zj-1483227
12.功能强大的字体设计软件FontLabv8.4.0.8898英文特别版软件内置的智能对齐工具可以自动根据预设规则调整字形,确保字体的整体一致性和视觉平衡,提升设计的专业性和美观度。 5. OpenType 功能支持: FontLab 支持创建具有复杂排版功能的OpenType字体,如连字、替代字符等,使得字体设计更加丰富和动态。 6. 实时预览: https://www.bilibili.com/read/mobile?id=36157515
13.用PicsArt软件做花字体星空字体首先app搜索PicsArt这个软件并下载,下载完打开出来页面点?号,点完?号出来的页面点编辑并且添加一张黑色的底图,然后https://www.meipian.cn/i7im2vm
14.做字库超简单!字体设计神器Glyphs系列教程(上)优设网可以一边做字,一边做各种排版测试。 软件的拓展性很好,有非常多实用的插件脚本。 5. 智能部件提高效率: 在Glyphs 里,我们可以根据需求,将笔画创建为智能部件,并设置好粗细、长短、角度等属性。之后在设计字体时,可以直接调用这些智能部件,并用滑杆来调整各项参数。这样可以有效的减少修改偏旁部首的时间,让设计效率提https://www.uisdc.com/glyphs
15.以方·字体管理器以方·iFonts字体助手客户端引进全网优秀品牌字库资源满足用户的用字需求,以方·iFonts彻底简化字体使用流程,只需3步即可拥有全网字库,超级字体管理工具,值得您试试。https://ifonts.com/
16.字体管家做过美工设计的朋友一定深有体会,在设计海报或图片Logo之类的时候,每当需要用字体时都要翻天覆海地去各个字体网站搜索下载,那些痛苦经历很可能会让你想起来都吐。 “字体管家”是一款专门为解决设计师们对于字体烦恼的免费好工具!它拥有大量的在线字体,可以方便地搜索、下载、预览与安装字体,也能帮你备份、一键安装/https://www.iplaysoft.com/zi-ti-guan-jia.html
17.巧影唯美花字体版下载巧影特效哥花字体下载v5.4.12.22670.CZ巧影特效花字体版软件体验效果非常好,它提供了多种丰富的视频编辑功能,用户们可以在上面随时随地编辑自己想要的视频效果,且功能设定也是十分的丰富,更有成千上万的字体,特效、贴纸、音效、和模板材料等你来了解,每周都会在不断更新的哦! 巧影特效软件描述 为您创建专业的视频编辑工具。它不仅操作简单,而且功能强大https://app.3dmgame.com/mip/android/245554.html?ivk_sa=1024320u
18.免费字体免费字体软件合集免费字体 现如今字体样式成千上万,选择合适的字体是必须的,但它并不容易。我们需要更多的选择,所以pc下载网小编在这里把一些常用的字体归类打包提供给大家下载,包括:文鼎字体、华文字体、英文字体、迷你字体、广告字体等等一些常用字体打包下载,希望大家喜欢。https://www.pcsoft.com.cn/zhuanti/mfzt/
19.手机换字体软件哪个好?手机字体软件免费下载手机字体软件有哪些?现在人们对美的要求越来越高,处处都想赏心悦目,最日常的用品手机更是要兼顾美貌和实用性,那么小编就来为大家介绍几款实用的手机字体软件,让你可以随心打扮自己的手机,让它与众不同,好看中又充满智慧!http://www.downyi.com/key/sjztrj/
20.Hifont(字体管家)APP下载是一款小巧但是非常精致的改变手机字体的手移动应该软件,软件可以帮助用户让用户的手机字体变得更加符合自己的个人风格,软件支持个性化设计,在用户设计的过程中软件就可以帮助用户更换自己手机里面的字体帮助用户更换更换自己的心情,该软件内继承了包括除了我们经常在文档类软件看到的基础字体软件还有很多特殊字体供用户进行选择http://www.lenosoft.com/down/13059.htm
21.字体Server Mono 是一个受打字机、Apple 的 San Francisco Mono、ASCII 艺术、命令行界面和编程工具启发的等宽字体(英文),拥有清晰的可读性和统一的字符宽度,非常适合在 俄罗斯方块字体 – Tetris Font 趣味软件 2024/06/22 3 Tetris Font 是一款比较特殊的英文字体,它使用动态的俄罗斯方块模式,来组成字体。并且可导https://www.appinn.com/tag/%E5%AD%97%E4%BD%93/
22.主题字体大全手机字体主题APP最新中文版下载主题字体大全为您提供数千款新颖字体免费下载,卡通,炫酷,书法,手写等字体应有尽有,还有漂亮签名制作,字体设计,时尚的背景元素,快来下载免费字体,成为新潮的字体一族吧。 主题字体大全软件亮点 1、支持字体预览,文案选择,晒图分享 2、小编精选数百款中英文字体, 免费下载、免费导出、免费安装 http://www.dianwannan.com/app/1000000316436/
23.我的字体2.4App字体制作软件吾爱破解ttf文件, 然后把它导出,拷贝到电脑上,安装字体,在word、photoshop等软件中使用。解锁完整字体 https://www.52pojie.cn/forum.php?mod=viewthread&tid=1715802
24.把字体转换为毛笔字的软件,毛笔字体下载大全把字体转换为毛笔字的软件,毛笔字体下载大全介绍 推荐一个比较全繁体毛笔草书字体下载 繁体毛笔草书字体下载:下载链接提取码:m7qe 1、第一字体网提供的毛笔草书字体下载之后均为通用的TTF字体文件格式,仅供学习之用,由于字库的设计需要付出大量的心血,若您需要将其用作商业用途,我们强烈建议您向原作者联系购买。 2、https://www.pinunu.com/money/bztzhwa.html