Files
STM32F4-Base/tools/font_gen

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-regen skill)——否则新字显示为空白/方块
  • 产物 ui_font_cn_12.c 带 UTF-8 BOM,勿手改(由脚本生成)
  • 字库大小直接影响 Flash 占用,只嵌入实际使用的字符
  • 依赖 fontTools / Pillow(已装在 .venv)

相关文档

  • docs/UI设计/UI_中文字体生成与配置.md
  • docs/UI设计/UI_设计架构.md