在一个百般无聊的晚上,我利用VMware Workstation Pro安装了Mac。过程并不流畅,但好歹是体验了一下苹果系统的感觉。
最喜欢是Mac的字体了。我用Chrome打开我自己网站的截图。
一直以来就是对Windows字体渲染很不满意。在WIN 7一段时间我使用了MacType 作为字体渲染软件。但用MacType 带来的是整个系统的卡顿。感觉得不偿失。更何况用得比较多的Chrome并不支持DirectWrite ,所以 Mactype 渲染已阵亡。
苹果 Mac OS X 对于字体的渲染和显示的思路是让屏幕上显示的和在纸上打印的效果相同,而微软 Windows 的思路则是适应更多的设备,让字体在低分辨率设备上也能看清楚,即便如此会导致字体笔画发生一定的改变。这一最初设计思路的不同也就导致了两者在字体渲染上很大的差异。从系统开发之初确定的这一思路陆续影响到了后来的应用开发。而到了高分辨率屏幕渐渐普及的今天,传统的 GDI 引擎不能适应高分辨率,也就导致之前开发的 Win32 应用中的字体在高 DPI 情况下显示模糊或者不正常。
对于 Windows 10 所带的微软雅黑字体,其问题在于,其中包含了不合适的 GASP 表。比如在高 DPI 或者大字号下面就不需要让字体渲染引擎进行 Hint,大量的显示器像素点完全可以达到矢量字体的设计效果。只有在字比较小或者低分辨率屏幕上,就应该启用 Hint,否则字体就模糊了。然而,如果用户的屏幕本身已经是高分辨率的情况下,再告诉渲染引擎用 Hint 对字体进行清晰化,就会导致本来可以清晰显示的字体变得十分难看,或是高低不平,或是挤成一团。现在很多电脑使用的 1080p 的屏幕。使用推荐的 125% DPI 情况下,字体笔画之间仍然会出现一些不协调的情况。
解决问题:
极限社区的大神 RadarNyan 给出了的方案是修正 GASP 表来使所有 DPI 下均不使用 Hint。利用一个脚本可以批量将字体的 GASP 表进行修正。我对这个脚本的通用性进行了一定的改进。
注意:以下操作涉及到系统文件修改,请注意备份。并且此修正方案在升级系统(大升级)后可能会消失。风险自负。
(1)下载这个脚本,并解压到合适位置。(GaspHack_v2_MOD)
(2)接着运行 GaspHack_v2_MOD.bat ,等待执行完成。
(3)执行完成后,在 workingDir\output 下面找到 msyh.ttc(微软雅黑)、segoeui.ttf、segui*.ttf(Segoe UI),复制出来待用。
(4)接着在 “设置”,“更新和安全”,“恢复” 中选择 “立即重启”(注意保存好工作),在 “疑难解答” 中选择 “命令提示符”。
(5)用 copy 命令将复制出来的字体覆盖到 X:\Windows\Fonts 下面(X 为系统安装盘符)命令如下:
copy C:\X\*.* C:\Windows\Fonts
(6)重新启动系统。
最后,你会发现 DirectWrite 下面字体的显示有了很大的提升。
我是1080p 的屏幕,在使用推荐的 125% DPI 情况下,截图如下:
基本满意,有种耳目一新的感觉,最重要的是对系统近乎没有任何影响。