fix(ass): Fontsize乘1.35补偿系数对齐CSS预览字号 #1516
Reference in New Issue
Block a user
Delete Branch "fix/ass-fontsize-compensation-1.35"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
ASS Fontsize 是字体 em-square 高度(含 Latin 升降部留白),中文字符实际只占声明字号的约 65%~75%;浏览器 CSS font-size 让中文字符占满声明高度,导致前端预览标题比成片标题大约 35%。
实测:
font_size=89时,成片中文字高仅约 58px。修复
在
packages/domain/ass_subtitle_builder.py:ASS_FONTSIZE_COMPENSATION = 1.35与_compensate_ass_fontsize()(max(1, round(font_size*1.35)))build_ass_style写入 ASS Style 的 Fontsize 时乘补偿系数——title 与 subtitle 均生效,其他字段不变_wrap_title_text换行宽度计算同步使用补偿后的字号,保证换行位置与实际渲染一致验证
font_size=89→ ASS Fontsize =round(89*1.35)=120,实际中文字高约 78~85px,与 CSS 预览一致 ✅🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
_wrap_title_text函数中同步应用了字号补偿逻辑,确保了自动换行计算基于实际渲染的字号,避免了因字号放大导致换行位置错位的问题。_compensate_ass_fontsize函数中使用了max(1, ...),有效防止了因输入非正数导致的渲染错误或异常。test_minimum_fontsize_at_least_one),并同步更新了所有受影响的历史断言,保证了回归测试的准确性。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-08-26 17:24:08 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1516 已关闭或合并,对应的预览环境已被清理。