win10 去除字体 Hinting, 带来美妙体验

如果你的 win10 的缩放比例为 100% , 你可以直接关闭本页了。 如果您使用 200% 及以上的缩放比例,请到这里(TechBench by WZT (v3.3))下载 1703(15063), 然后关闭页面吧。

背景

先前我们提到过:没有高分屏的情况下, 我们可以通过 MacType 来改善字体的渲染结果。我想很多小伙伴想知道:为什么高分屏通过缩放可以使字体更加清晰锐利呢?我们有没有什么办法来使非高分屏幕也能获得类似的渲染体验呢?

什么是 Font Hinting?

首先,我们需要了解一下本文需要探究的核心:Font Hinting。

字体微调(Font Hinting) 是使用数学指令(向量,矩阵模型)来调整轮廓字体的显示,使其与光栅化网格对齐。 在低屏幕分辨率下,提示对于生成清晰易读的文本至关重要。 它可以伴随抗锯齿和(在液晶显示器上)子像素渲染以进一步清晰。

出于工业生产的目的,以及历史的遗留问题。 相比 MacOS 要求字体渲染要像打印在纸张上一样清晰, Microsoft 更着力于使字体在显示屏上能更清晰的表示。 由于非拉丁字符,尤其简中,繁中,笔画繁重的特点, Hinting 在起作用的时候会通过破坏笔画和字形来使笔画对其到像素点上——这就是为什么Windows 系统下小字号的字体在显示器,在纸张上的表现差异巨大。

分析

Windows 10 的字体渲染问题分为两个方面。

1、字体问题。对于 Windows 10 Build 10240 所带的微软雅黑6.20字体,其问题在于,其中包含了不合适的 GASP 表。比如在高 DPI 或者大字号下面就不需要让字体渲染引擎进行 Hint,大量的显示器像素点完全可以达到矢量字体的设计效果。只有在字比较小或者低分辨率屏幕上,就应该启用Hint,否则字体就模糊了。然而,如果用户的屏幕本身已经是高分辨率的情况下,再告诉渲染引擎用 Hint 对字体进行清晰化,就会导致本来可以清晰显示的字体变得十分难看,或是高低不平,或是挤成一团。就比如《Windows 10 体验记》一文中关于字体的截图。这一问题在 Windows 10 Build 10586 中附带的微软雅黑字体 6.21中有了一定的缓解。然而,对于处于高分辨率和低分辨率之间的模糊地带屏幕来说却仍然不够好。这些屏幕并没有 Retina 那样的高分辨率,但是对于普通屏幕来说分辨率也不低。就比如现在很多电脑使用的 1080p 的屏幕。使用推荐的 125% DPI情况下,字体笔画之间仍然会出现一些不协调的情况。

2、传统字体引擎 GDI 问题。这不能说是 Windows 10 的问题,而是存在于 Windows 7、Windows 8/8.1、Windows 10 中的一个历史遗留问题,也就是说只要是采用 GDI 引擎的传统 Win32 应用在高 DPI 下都会模糊。这一问题的解决方案也有两个:(1)DPI 设定为 100%;(2)使用 MacType 等第三方渲染引擎替代 GDI 对传统 Win32 应用进行渲染。

对于 GDI 渲染的问题, 我们可以使用 MacType 解决。 我们在此就不多说了。 到这, 我们也就明了。 我们在低缩放下字体变形,锐利,毛刺的问题就是 Font Hinting 带来的。

您可以在文尾的引用链接中寻找到其他用于提升字体渲染体验的方法

有没有办法去掉它呢?

当然有啊, 要不然本文是干什么的呢? XD

首先得感谢 RadarNyan 提供的脚本工具: 通过修改 GASP 表来去除字体中的 Hinting 信息, 以便在各种 dpi 都能达到一致的渲染效果。

  1. 下载 FontHandler 并且 解压。
  2. 打开一个具有管理员权限的 PowerShell, 并切换到解压目录。 输入 ./GaspHack_v2_MOD.bat 执行脚本。
  3. 等待脚本执行完毕后, 到 Win10 设置中找到更新与安全, 进入子目录恢复。 选择高级启动。
  4. 重启之后, 在高级启动中启动命令提示行
  5. 使用 copy 指令将之前在工作目录下的 output 中所有字体复制到 X:\Windows\Fonts 下面(X为系统安装盘符)

最后, 你就会发现使用 DirectWrite 渲染的界面中的字体无比锐利清晰。

假如, 您的字体文件过多。 或者是包含大量GASP信息错误的字体(脚本可能大量报错), 您可以选择使用我打包的 Fonts 文件夹来进行替换。 下载链接: https://mega.nz/#!WqBmza6T!WErpb5j1ePbdM9NwQawqVDrQKmzu22l3_9hf9E4xP9U (下载速度取决于您的网速)

Edge渲染样式

参考: Windows 10 1703 字体优化方案(1.25-1.75x) 您可以在此找到更多方法 Windows 10 字体显示优化方案


最后修改于 2018-08-21

文章标题:win10 去除字体 Hinting, 带来美妙体验 - 藤之青

文章地址:

本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

文本排版遵循 中文文案排版指北;允许自由转载和修改,但请务必标明文章来源且不得运用于商业目的并以相同方式分享(不得破坏排版格式)。

Waline.init({ el: '#waline', path: location.pathname, serverURL: 'https://comments.a632079.me', comment: true, emoji: [ 'https://unpkg.com/@waline/emojis@1.1.0/alus', 'https://unpkg.com/@waline/emojis@1.1.0/weibo', 'https://unpkg.com/@waline/emojis@1.1.0/tieba', 'https://unpkg.com/@waline/emojis@1.1.0/bilibili', ], dark: 'html.night', requiredMeta: ['nick','mail'], imageUploader: false, });