TA的每日心情 | 郁闷 2016-12-31 01:33 |
---|
签到天数: 6 天 [LV.2]偶尔看看I
星辰大海
- 积分
- 2969749
|
测试了一下,Aegisub(最新是2014年的3.2.2版)可以列出user font,可以正常保存字幕,但是font collector不能复制导出user font。不太清楚它是怎么实现的。我记得列举字体有好几种不同的API和库刚才找到了这里bit.ly/2FsiVOV ,Aegisub的Font Collector调用了get_installed_fonts(),这个函数是枚举注册表的(作者虽然写了一个GdiFontFileLister,但它里面仍然是调用了这个列举注册表的函数),于是就报错了。
但是,一般的功能可以正常工作(比如Style Editor),原因是是直接调用了wxWidgets框架的wxFontEnumerator::GetFacenames(),而wxWidgets for windows部分源码bit.ly/2U6c4Uw 中似乎是调用了Windows GDI的EnumFontFamiliesEx(),所以跟着正常工作了。不过这个API列出来的很多字体名称前带@,这些是垂直书写字体,与InstalledFontCollection结果不同。
也许对LAF 或者Aegisub font collector来说最适合的还是直接枚举注册表吧。 目前 LAF 也能辨識出字幕有此字型,加上系統是否已安裝此字型,這些功能都正常,有問題的部分只是無法把字型複製出來
對不支援 user font 的字型程式來說,這種結果應該都是一樣的
窮舉 Registry 是必然的,看起來你也是專業的程式工作者,或許你再想想就能知道原因了
可以的。LAF本身是以普通用户权限运行的,这也是它在1809上可以保存系统字体的原因。
Windows升级A搞挂了B其实挺常见的,而且bug也多,比如stack overflow上有个非常诡异的问答:win10系统无法预览和安装字体,结果最后发现解决方法竟然是完全没有关系的“启用Windows防火墙”…… superuser.com/questions/957907/unable-to-install-fonts-on-windows-10
哈哈,真虧他能找出這個辦法
|
|