Nanachi 发表于 2019-12-8 15:01

2019 年末,我们能采用什么方式改善 Windows 的字体渲染?

「9102 年」就要结束了,最新版 Windows 10(v1909)的字体渲染在 150% 以下缩放时的表现依然十分糟糕;开启 150% 缩放后字体渲染才会迎来大幅改善。

这是因为微软雅黑内置的 gasp 表中对不同字号启用了不同的渲染方式定义。在最新的 1909 上,这个阈值是 21px,即 21px 以上的文字才启用平滑渲染。很巧的是,21px 对应的缩放百分比正好是 130%。
这就意味着 125% 的缩放可能导致大部分字体渲染「崩坏」。对此,我们可以通过两个方法来「hack」。
注:
[*]所有操作在最新版本系统 Windows 10(v1909)下操作,更早的版本可能效果有所不同。
[*]本文所使用方法 2 来自知乎用户 @洛晓晓晓晓,原文地址 及 原理 可跳转阅读。本文对工具进行了整合并系统化操作步骤。
[*]本文所提及所有方法仅为临时解决方案,根治该问题的办法包括但不限于:虔诚地祈愿微软能找人把字体渲染的汇编重新写一次、等待新微软雅黑(一说新微软雅黑即小米兰亭 Pro)被部署到系统中、购买 4K 显示器并启用至少 150% 的缩放、破釜沉舟改用 Linux (针对计算机专业学生)、购买一台 Mac 等等。

方法1:MacType可喜可贺的是,早前很多人所熟悉的 MacType 现在完全支持 Windows 10 且无需打补丁了,同时也不太可能会出现大的 bug。使用 MacType 可以看做一个「AOE 技能」,默认情况下对全部字体有效,且可以进行字体热替换、调整阴影、微调笔划等。
但缺点也很明显:

[*]严重影响性能,包括 dwm 和用户程序如:Fences 3
[*]无法在安全策略高的软件中加载,如:WPS
[*]部分程序的渲染很奇怪,如宋体在 IE 或 Edge 下的渲染效果
[*]效果调试起来比较麻烦,达到完美需要折腾一段时间

MacType 的配置方法倒也简单:从 Github 下载最新的 Release ,安装后启用即可。在初始配置中建议遵循以下顺序:

[*]第一次使用 MacType Wizard 时,选择「独立加载」模式
[*]选择配置文件,观察 Explorer.exe (资源管理器) 内与 Word / Edge Beta 中的渲染效果
[*]重新运行 MacType Wizard。若满意效果,将加载模式改为「注册表加载」或「服务加载」以获得更好的使用体验;若不满意,关闭所有应用程序,更改配置文件后重新观察渲染效果。

关于更详细的介绍与效果 demo,可参考《用 MacType 拯救你的 Windows 字体 | 一日一技》。需要注意的是,此文写作于 2016 年,部分配置方法已过时。
方法2:干掉微软雅黑的 hinting
具体到本文开头提到的平滑渲染问题,我们也可以使用硬替换的方法,将系统中微软雅黑、Segoe UI、Arial、宋体等字体的 hinting 干掉来得到更好的渲染效果。
注意,这个方法也有一定的危险性且可能在操作系统更新后失效。请在完全了解过程与其危险性的前提下进行此操作。
工具包下载:Link。该链接仅供本站使用。
步骤
[*]解压缩工具包,并按照 instruction.txt 配置好环境。
[*]启动 Powershell,将目录切换到工具包目录下。
[*]执行 cd simsun 、 .\GaspHack_v2.bat 与 cd ..
[*]执行 cd general 与 .\GaspHack_v2.bat
[*]双击运行 backup 目录下的 back.bat
[*]如果一切都正常运行,backup 下应有一堆字体,包括 simsun.ttc, msyh.ttc, segoeui.ttf 等;general\workingDir\output 与 simsun\workingDir\output 下也有对应的字体。
[*]尽可能地退出其他无关软件,特别是杀毒软件等安全工具,运行「字体替换工具」,将general\workingDir\output 与simsun\workingDir\output 下的文件拖入,点击「开始执行任务」即可。
[*]重启电脑,打开设置并搜索「ClearType」,选择「调整 ClearType 文本」并按照提示操作。
[*]注销用户并重新登录,完成。

Credit
[*]GaspHack: ThemeX, RadarNyan
[*]字体替换工具:fishlee.net
[*]UniteTTC: yozvox

总结
平心而论,通过干掉 hinting 的方式来改善渲染在效果上可能不如 MacType 好,但这种方法的优势很明显:兼容性好、性能高(没有动态加载其他 dll)。
出于性能及安全性考虑,本文不再介绍 WinFont 对此方法的一个小修复。如果想覆盖更多字体,可通过增删 general 目录下的 bat 文件中的 copy C:\Windows\Fonts\segoe*.ttf .\ 段来达到目的。
同时,本方法主要面对使用 125% 缩放的设备,150% 与 175% 缩放的设备也可以通过该方法提升观感。200% 以上缩放的设备无需改动。对于低 PPI 屏幕(简单判断方法:Windows 推荐缩放比例为 100%,且 100% 下字体大小可接受)的用户,原作者建议不用折腾了。
如果在干掉 hinting 后想要恢复原来的字体,打开字体替换工具执行「还原」操作即可。
最后放上方法二操作前后的效果预览:https://cdn.sspai.com/2019/12/07/682a205ef3beb6a03a25ee0fc3a5c6b3.png?imageView2/2/w/1120/q/90/interlace/1/ignore-error/1

Word 中的渲染示例

由于每个显示器的像素排列方式等不同,效果也有可能不同,这也是需要执行「调整 ClearType 文本」的原因。宋体由于在小字号下使用平滑渲染看着比较难受,本文中给出的配置未进行处理。

https://sspai.com/post/57729

碳. 发表于 2019-12-8 15:06

所以,有改善calibre渲染的办法吗

sniffer 发表于 2019-12-8 15:24

125%,有的窗口就是模模糊糊,服了




暗影翔 发表于 2019-12-8 15:29

我用124缩放,主要窗口比125好多了,但是有些程序窗口直接不缩放了

----发送自 Sony G8441,Android 9

yst234 发表于 2019-12-8 15:34

装 MacType 是唯一正解
不然非整比缩放的渲染完全不能看

すぴぱら 发表于 2019-12-8 15:35

kuleisite1992 发表于 2019-12-8 15:45

本帖最后由 kuleisite1992 于 2019-12-8 15:47 编辑

96DPI的情况下,在我这边,清晰度是优先于美观度的
特地找回了XP时候的点阵宋体,清晰锐利,比朦朦胧胧的mactype好使多了所以为啥不能提取GAL里的字体啊,我觉得在96DPI清晰度都比这堆玩意高多了.....

308 发表于 2019-12-8 16:04

当然是换一个高分屏。windows的字体渲染难看,是因为对比高ppi的手机屏幕及字体显得又糊又扭曲。另外低分辨率lcd屏的显示效果可比电子轰击荧光粉扫描线成像的crt显示器渣多了,外加锐利清晰的点阵字体......只能说win的包袱太多了

-- 来自 能搜索的 Stage1官方 iOS客户端

安永透 发表于 2019-12-8 16:10

煞笔知乎天天洗脑

404489039 发表于 2019-12-8 16:13

弄着有点没的建议换个4k屏幕

308 发表于 2019-12-8 16:20

安永透 发表于 2019-12-08 16:10:10
煞笔知乎天天洗脑是少数派的

-- 来自 有消息提醒的 Stage1官方 iOS客户端

红叶 发表于 2019-12-8 16:43

要删掉原来再装吗
                                 

伊克路西安 发表于 2019-12-8 16:46

换个4K屏幕,我开150%缩放也不觉得有啥难受的,之前1080p的屏幕不开mactype那叫一个难受,现在mactype也懒得装了,系统字体懒得整。就看微软雅黑算了
chrome里倒是把宋体全部毙掉,换成方正兰亭圆

macos 发表于 2019-12-8 17:14

渲染没有问题,是dpi的缩放模式,在不支持的程序中,看程序的属性,有三种模式,最接近老式的是程序缩放,这时字体不会拉伸,其他两种系统方式都有一定程度拉伸,但老式方式窗体比例不处理,可能会走样

P-link 发表于 2019-12-8 17:29

225%缩放 怪不得没啥感觉

ekdc11 发表于 2019-12-8 17:38

19年Linux 桌面发展挺快的

新人 debian 系选一个(Linux Mint, Ubuntu, elementaryOS) flatpak, snaps, appimage 再加上几个常用的源已经相当好用了。具体可以去看看flathub snaps商店里面的包。学术界的软件其实反而都有编译好的甚至deb/rpm包提供。

win10 确实是历史包袱太沉重了

cirno9 发表于 2019-12-8 17:41

微软自动的125%会字体模糊,但是手动输入125%就没有问题,有少量老程序不支持只能100%缩放

kros 发表于 2019-12-8 17:49

台式机4K 27寸 150缩放
笔记本1080P 15.6100默认
感觉都没啥问题

litel 发表于 2019-12-9 07:37

4k显示器。。。200%缩放,专治各种花里胡哨。。

風駿 发表于 2019-12-9 07:45

MacType在win10有些情况还是没辙啊

tsubasa9 发表于 2019-12-9 07:50

4k开200%的雅黑一样很烂好不好
最舒服的是Linux的freetype2, osx也是垃圾

JasonBourne 发表于 2019-12-9 08:35

都挺危险的,系统稳定性没有保障。
还是推荐4k+200%缩放,2k+150%缩放。

御风八极 发表于 2019-12-9 09:06

cirno9 发表于 2019-12-08 17:41:43
微软自动的125%会字体模糊,但是手动输入125%就没有问题,有少量老程序不支持只能100%缩放 ...我说我怎么没什么感觉。除了部分老程序完全是走缩放整体ui

-- 来自 能看大图的 Stage1官方 Android客户端

qazesz 发表于 2019-12-9 09:21

kuleisite1992 发表于 2019-12-8 15:45
96DPI的情况下,在我这边,清晰度是优先于美观度的
特地找回了XP时候的点阵宋体,清晰锐利,比朦朦 ...

+1,没有比点阵宋体更舒服的ui字体了

niyikaowo 发表于 2019-12-9 10:05

争取在强制推送1909前换4k

—— 来自 samsung SM-G9500, Android 9上的 S1Next-鹅版 v2.2.0.1

zyhang 发表于 2019-12-9 10:12

mac现在在低分屏下的表现比Windows还糟糕

faithlifer 发表于 2019-12-9 11:22

404489039 发表于 2019-12-8 16:13
弄着有点没的建议换个4k屏幕

4k屏幕天下第一

—— 来自 samsung SM-N9600, Android 9上的 S1Next-鹅版 v2.2.0.1

土豆麻辣人 发表于 2019-12-9 11:29

rhocas 发表于 2019-12-9 11:53

macos 发表于 2019-12-9 12:06

qazesz 发表于 2019-12-9 09:21
+1,没有比点阵宋体更舒服的ui字体了

点阵太过特殊,全是单行线做的,两行跃迁了,其实最好是直接提到完全不需要考虑细节的dpi,像纸质一样,不要计较性能浪费

松霖 发表于 2019-12-9 12:12

弄这些有的没的不如直接换4k屏开150 200缩放

—— 来自 HUAWEI ELE-AL00, Android 10上的 S1Next-鹅版 v2.2.0.1

wonderful259 发表于 2019-12-9 17:45

目前是2k,150缩放,感觉还是不错的。

shinjiikari 发表于 2019-12-9 18:06

你们4K开200%不觉得涨眼睛么?涨的要死

罗克萨斯 发表于 2019-12-9 18:10

4K开200%缩放绝对立竿见影的提升

—— 来自 smartisan DE106, Android 8.1.0上的 S1Next-鹅版 v2.2.0.1

闪电战 发表于 2019-12-9 19:55

27寸4k开150感觉很爽
开200太大了

hein 发表于 2019-12-9 20:28

qazesz 发表于 2019-12-9 09:21
+1,没有比点阵宋体更舒服的ui字体了

支持

keytomylife 发表于 2019-12-9 20:50

皇牌马甲 发表于 2019-12-10 21:27

犇䨻
为啥我的手机能看清楚 电脑看不清楚

-- 来自 有消息提醒的 Stage1官方 iOS客户端

Geminize 发表于 2019-12-10 21:57

页: [1]
查看完整版本: 2019 年末,我们能采用什么方式改善 Windows 的字体渲染?