- UID
- 2
- 积分
- 8682
- 帖子
- 2905
- 主题
- 199
- 论坛币
- 11740
- 威望
- 16
- EP值
- 2349
- MP值
- 15
- 阅读权限
- 200
- 注册时间
- 2011-8-3
- 在线时间
- 2597 小时
- 最后登录
- 2024-8-28
|
努力了一下午, 貌似终于见到一丝曙光了...
不过, 大致的修正方向已经确定了.
由于GDI与FreeType之前的差异性(尝试了所以字体大小定义方式, 也找不到一个对所有字体都适用的, 能让他们输出相同大小的字符的方法), 所以只能引入一个新的字体大小, 让TCC中设置的字体大小作为参照(不管是指定给GDI或是FT, 对应的为ASS普通文字与其他类型文字), 程序自动计算出一个字体大小给另一个字体引擎, 从而使两个引擎的结果相同.
使用该解决方案应该能得到一个最理想的结果, 但会对以前的脚本(用到了像素字, Mask, tcas等非纯ASS普通文字特效)造成一定的兼容性问题, 好在修改起来应该会非常容易 --> 只需要修改 GetVal(val_FontSize) 为 GetVal(val_ftFontSize) 或 GetVal(val_gdiFontSize) 即可, GetVal(val_FontSize)仍然会保留, 其含义应该会等价于 GetVal(val_gdiFontSize) --> 也即ASS普通文字的大小定义.
具体要看最终实现以及影响范围评估而定.
-------------- 19:12 编辑 ----------------
惊奇的发现用目前这算法不会造成任何兼容性问题... XD
|
|