01 / 30 秒回忆
LVGL v8 plain 1bpp 字体由 glyph 位图、字形描述符和 Unicode cmap 组成。位图按行主序连续打包,glyph id 0 保留给缺字,字符映射决定 LVGL 查找哪个描述符。
TOOLS / 嵌入式
将手工 glyph JSON 转换为 LVGL v8 plain 1bpp 字体 C 结构。
快速理解
输入
输出
知识回忆
概念、关系和工程边界。
01 / 30 秒回忆
LVGL v8 plain 1bpp 字体由 glyph 位图、字形描述符和 Unicode cmap 组成。位图按行主序连续打包,glyph id 0 保留给缺字,字符映射决定 LVGL 查找哪个描述符。
02 / 核心关系
每个 glyph 的 bitmap 字节数为 ceil(width×height/8);adv_w 使用 8.4 定点格式,存储值为 round(advanceWidth×16),非连续码点拆成多个 format0 tiny 范围。
03 / 使用判断
先固定字体行高、基线、字框和 advanceWidth,再用 A、空格和一个非连续码点检查位图、进位和 cmap;编译时确认目标 LVGL 版本与宏配置一致。
把 bitmap 当成每行都单独补齐的字节流,或把 Unicode 码点顺序直接当成 glyph id。U+0000、制表符映射和代理项边界也不能只靠浏览器字符串处理。
本工具只接收已栅格化的 0/1 glyph JSON,不解析 TTF/OTF、不生成 kerning、不处理压缩字体;输出需在目标 LVGL 工程中编译并用实际屏幕核对。