Windows 10 1703 字体优化方案(1.25-1.75x)

Windows 10 1703 字体优化方案(1.25-1.75x)

PS:如果您使用 100% 缩放比例,请直接 Ctrl+W 吧。如果您使用 200% 及以上的缩放比例,请到这里(TechBench by WZT (v3.3))下载1703(15063),然后 Ctrl+W 吧。


Windows 10 1703 的字体渲染机制有了很多变化阅读本文前建议阅读我写的这个答案,效果请参见答案,本专栏文章仅说明修改过程和修改过程的坑。),比如说,新增了仅缩放图形内容而可以保证文本漂亮地渲染出来的 GDI Scaling 模式(系统增强),而且 ClearType 也有了 y 轴渲染(但需要无 Hinting 字体;或者,对于小于 21 px 的字体,需要修改 gasp 表)。

下面我提供大家一个完美的渲染方案。


1、首先就是修改 gasp 表了,以往这样做会改善 DirectWrite 渲染的效果,现在 ClearType 也从中受益了。由于相关文章很多,我不想码字了,我直接搜一篇贴上吧。。(th0.me/1919.html/commen

PS:由于Windows总是喜欢为小于等于13pt@96DPI(即17px)的宋体强行加GRIDFIT,经常会造成某些软件的英文和数字显示彻底挂掉(如下图):

解决方法是修改GaspHack_v2.ttx,然后重新输出,建议同时修改批处理文件,仅复制宋体,关于修改的原理,请见极限社区 - 查看单个帖子 - 交流 win10 10586版本似乎对字体做了很多改进(另附96DPI下px和pt的换算:Approximate Conversion from Points to Pixels):

<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
  <gasp>
    <gaspRange rangeMaxPPEM="17" rangeGaspBehavior="7"/>
    <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="10"/>
  </gasp>
</ttFont>

若不想让其他字体在96DPI@9pt(即12px)下进行渲染,请修改为(对永远不支持高分屏的模糊软件非常好用),同时建议修改批处理,仅复制正黑,雅黑和Tahoma,Segoe UI,Arial:

<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.5">
  <gasp>
    <gaspRange rangeMaxPPEM="12" rangeGaspBehavior="7"/>
    <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="10"/>
  </gasp>
</ttFont>

最后的修改效果,可以看到宋体的英文和数字问题成功被解决了,微软雅黑12px修改后也使用传统ClearType了。

上图为120DPI(125%)下宋体在Remote Desktop Connection Manager的表现(修复后)。

上图为传统模式的DPI虚拟化,可以看到,在我的调教后,小字号的宋体和≦12px的雅黑使用了传统的ClearType而不再使用新式带y轴渲染的ClearType。

PS:评论区内若继续出现 “我升级了 1080p 没有变化”等不看文章和我提及的相关回答/博客就评论的行为或是“坚持4K屏用100%”等在评论区中抬杠的评论,一律折叠不谢。

2、如果您认为桌面图标的白色字体不够重,可以使用 MT DW Patch 作者的 WinFont 进行优化,注意请使用 Alpha3 版本:

「WinFont+」開発記録 Part 4 - しらいとブログ

然后修改注册表,转到HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon(注意:一定要修改HKCU而非HKLM,因为HKCU的优先级更高,而WinFont并非可用的外壳程序,Explorer.exe才是,这里使用Shell键值主要是为了让WinFont优先于Explorer.exe启动,此时该用户可以使用两个Shell:不合规的WinFont和符合规范的Explorer.exe)

然后创建一个新的 REG_SZ 值,赋名 Shell,赋值参考我的设置,注销后即可生效:

这里是 125% 下的前后对比:

如果想在任务管理器手动重启资源管理器后依然保留渲染,请打开事件查看器-应用程序,寻找来源为 Winlogon,ID 为 1002 的日志,创建一个这样的计划任务就好了。(如果该设备使用多用户,请不要设置该计划任务)

taskkill /im explorer.exe /f
C:\Tools\System\WinFont+_alpha03\WinFont+64.exe C:\Windows\Explorer.exe

3、如果您的缩放比例是 150% 或 175%,教程结束。如果是 125% 且使用 Office 或 VS 的话,继续,如果您注重安全,教程结束,相对路径而又不含签名校验的AppInit DLL设置是非常危险的!(4/9更新:个人不建议在1703上使用MacType,很影响系统和Office的稳定性,所以我建议不用再做这步了,莫名的风扇狂转、系统无响应和昨天编辑Office文档时的各种卡死已经让我放弃MacType了。)

若想继续,请参见使用MacType优化125%(120DPI)上的Office 2013+和VS【不推荐】


教程结。


PS:我不建议在 1703 及以上版本全局使用 MacType 或者 WinFont(注:全局使用 WinFont 的方法是使用 AppInit_DLLs),因为它们会造成 GDI Scaling 完全失灵,而且可能会影响系统的稳定性。

编辑于 2017-04-09

文章被以下专栏收录