← 决策总览 / D13 · PNG 文字渲染(融合方案) 13 / 15 · D13 已决策 → 确认融合形态
PD-D13-PNGTEXT · ledger §12 登记分歧

PNG 文字渲染 — 融合方案:渲染学生姓名(复用字体发现 + 隐私生效)

真实任务不变:PNG 座位表发微信群,家长直接可读姓名。PNG 座位块内绘制学生姓名(中文),复用 D12 的系统字体发现基础设施;隐私开关对位图同样生效(public 匿名化 → 打码)。

不可违反约束:字体光栅化需新增 Rust 路径(建议纯 Rust 无依赖:fontdue/ttf-parser 类,符合最小依赖政策 §5.6);隐私语义对位图生效;产物经独立 validator 复核。
融合目标形态
teacher 模板:座位块内渲染姓名 + 学号;public 模板:姓名打码为「学生A/B/C」。
学生丁001STU001
学生丅005STU005
学生上010STU010
学生下011STU011
学生 A
学生 B
学生 C
学生 D
teacher 模板 · 显示姓名public 模板 · 匿名化
字体光栅化复用 D12 字体发现(同一系统字体模块);2x 分辨率输出保证手机清晰度。
长名字(4–5 字)字号自适应;座位块内两行:姓名 + 学号(teacher 模板)。
设计要点说明
光栅化Rust 新增文本光栅化(fontdue/ttf-parser 类,纯 Rust 无依赖);字体来自 D12 字体发现模块
隐私生效public 模板 + 匿名化:姓名打码「学生A/B/C」;隐藏成绩等开关对位图同样过滤
清晰度2x 分辨率输出(微信缩略图可读)
schema/API 影响Rust PNG 渲染路径扩展;导出契约(PNG 语义:含文字)

待研究(不冻结):

  • 字号自适应规则(4–5 字长名)与打码样式
  • 60 座级光栅化性能