tools/font_gen/ — 中文字库生成
从字符集清单生成 LVGL 用的中文字库 C 文件(子集化,只嵌入用到的汉字以节省 Flash)。
脚本一览
| 脚本 | 作用 |
|---|---|
extract_cn.py |
提取汉字:扫描 UI 源码的字符串字面量,输出字符集清单 ui_cn_chars.txt |
make_font.py |
生成字库:按字符集从 TTF 生成 Drivers/BSP/UI/ui_font_cn_12.c |
使用方式
# 新增含汉字的 UI 文案后:先提取字符集,再生成字库
& '.venv\Scripts\python.exe' tools/font_gen/extract_cn.py
& '.venv\Scripts\python.exe' tools/font_gen/make_font.py
⚠️ 注意
- 含新汉字的 UI 文案提交前必须重跑(走
font-regenskill)——否则新字显示为空白/方块 - 产物
ui_font_cn_12.c带 UTF-8 BOM,勿手改(由脚本生成) - 字库大小直接影响 Flash 占用,只嵌入实际使用的字符
- 依赖
fontTools/Pillow(已装在.venv)
相关文档
docs/UI设计/UI_中文字体生成与配置.mddocs/UI设计/UI_设计架构.md