news 2026/10/1 21:32:06

HoloCubic_AIO中文字体生成:LvglFontTool完整制作流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoloCubic_AIO中文字体生成:LvglFontTool完整制作流程

HoloCubic_AIO中文字体生成:LvglFontTool完整制作流程

【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIO

HoloCubic_AIO是一款运行在 HoloCubic 小电视(ESP32 开发板)上的超多功能 AIO 固件,内置天气时钟、相册、视频播放、桌面投屏、Web 服务、bilibili 粉丝等应用。由于 ESP32 的 Flash 空间有限,固件无法内置完整中文字库,需要借助LvglFontTool按"用到的汉字"裁剪生成 LVGL 中文字体文件。本文将带你完整走通这套中文字体生成流程 🛠️

一、为什么必须手动生成中文字体?

  • 空间限制:全量中文字库动辄几十 MB,而 ESP32 的 Flash 通常只有几 MB,必须"按需裁剪"。
  • LVGL 机制:固件 UI 基于 LVGL 图形库构建,中文字体本质是打包成 C 数组的字模文件(bitmap),编译时直接烧进固件。
  • 项目惯例:HoloCubic_AIO 中的字库都是先用 LvglFontTool V0.4.zip) 生成,再提取去重后的汉字表维护在字库说明文档中,例如 AIO_Firmware_PIO/src/resource/font/README.md。

二、第一步:收集需要显示的汉字

字体生成的核心是先确定字表。推荐做法:

  1. 把 UI 上会显示的所有中文(界面文案、天气提示、城市名等)先写进一个.c文件的注释里。
  2. 用工程自带的提取脚本自动去重收集汉字:
python Script/get_font.py 字模.c文件的路径

该脚本位于 Script/get_font.py,它会扫描注释中的汉字并去重输出完整字表。项目里已有现成样例:lv_simulater_platformio/src/font/ch_font_20.c(微软雅黑粗体、字形高度 20),其对应字表维护在 lv_simulater_platformio/src/font/README.md,包含全部 ASCII 符号 + 常用汉字 + 城市名用字。

💡 小提示:天气功能要显示全国城市名,字表需要额外补充地名用字(如"邛邡邢郏鄢"等生僻字),可参考 AIO_Firmware_PIO/src/resource/font/README.md 中的扩展字表。

三、第二步:用 LvglFontTool 生成字体文件

打开 Docs/字体转换工具(源作者阿里兄).zip.zip) 中的LvglFontTool V0.4,关键参数建议如下:

参数推荐设置说明
字体楷体 / 微软雅黑粗体小屏幕下楷体(如 16px)更清晰
字形高度16 或 20高度越小,Flash 占用越少
编码Unicode与项目字库保持一致
灰度开启(4 位灰度)边缘平滑,显示更美观

把上一步收集的字表粘贴进工具,选择输出为C 数组格式,即可得到字体文件。

工程内附了一份现成成品可对照:AIO_Firmware_PIO/lib/font/font_unicode_kai_16.c,文件头明确标注"本字体文件由 Lvgl Font Tool V0.4 生成",内容为glyph_bitmap[]位图数组 + LVGL 字体结构体:

四、第三步:集成到固件工程

  1. 把生成的.c字体文件放进工程的字体目录,如 AIO_Firmware_PIO/lib/font/ 或应用自己的resource/font/目录。
  2. 在需要显示中文的 LVGL 控件上指定该lv_font_t字体即可。
  3. 固件整体采用低耦合的模块化框架,字体属于公共资源,修改后重新编译烧录即可生效:

五、常见问题排查(避坑指南)

  • 编译后 Flash 爆了?优先降低字形高度(20→16),并删掉字表中不用的汉字。
  • 屏幕上出现"豆腐块"(□)?说明显示的文字不在字表里,把它补进字表后用 LvglFontTool 重新生成。
  • 想在电脑上先验证效果?工程附带 LVGL 模拟器工程 lv_simulater_platformio/,把新字体放进src/font/即可在 PC 上直接预览,不用烧板子。
  • 不确定脚本怎么用?官方说明见 README.md 中"lvgl的字体生成"一节。

六、相关文件速查表

文件作用
Docs/字体转换工具(源作者阿里兄).zip.zip)LvglFontTool V0.4 工具本体
Script/get_font.py从字模 C 文件中提取去重汉字
AIO_Firmware_PIO/lib/font/font_unicode_kai_16.c楷体 16px 成品字体示例
lv_simulater_platformio/src/font/ch_font_20.c微软雅黑粗体 20px 字体(模拟器用)
AIO_Firmware_PIO/src/resource/font/README.md字表清单与提取脚本用法

按照"收集汉字 → 生成字模 → 集成编译"三步走,你就能为 HoloCubic_AIO 定制任意内容的中文字体了 🚀

【免费下载链接】HoloCubic_AIOHoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等项目地址: https://gitcode.com/GitHub_Trending/ho/HoloCubic_AIO

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 21:32:00

聚合增长GEO口碑怎么样,市场反馈好不好

当AI搜索技术重构商业获客逻辑,传统营销路径正在经历的迭代与变革。从早期的百度搜索时代,到SEO、SEM流量竞争阶段,再到短视频、直播电商的流量分流,直至今天生成式AI搜索走进大众消费与企业采购场景,每一次媒介技术的…

作者头像 李华
网站建设 2026/10/1 21:31:21

智慧园区规划的系统性难点与工程要点:基于制造运营视角的深度剖析

在制造业数字化转型进程中,智慧园区作为承载智能工厂的物理与数字底座,其规划质量直接决定了生产运营的效率、合规性及投资回报。然而,在实际工程落地中,智慧园区往往陷入“重展示、轻应用”、“重硬件、轻数据”、“重建设、轻运…

作者头像 李华
网站建设 2026/10/1 21:30:34

Spring Boot驾校培训管理系统:源码部署与数据库设计实战解析

1. 项目概述:这个驾校培训管理系统到底要解决什么问题我做过的驾校管理系统不止一个,但每次看到这类题目还是觉得它特别适合作为Spring Boot入门到实战的练手项目。这个"Spring Boot驾校培训管理系统"从标题上看就是一套完整的交付包&#xff…

作者头像 李华
网站建设 2026/10/1 21:27:50

DataHub V10升V11.1,证书和权限怎么查?

V10可以继续运行;准备升级V11.1时,先核对许可证,再备份配置、复核权限、测试证书与连接,最后演练回退。生产切换应在关键数据链路验证通过后进行。 Cogent DataHub 10已于2026年7月2日结束生命周期(End of Life&#x…

作者头像 李华