前段时间,一直使用 Mac 的 @Yves 老师希望在 Windows 上修改字体,跟我讨论了好一会儿 Windows 的字体渲染问题,他向我吐槽「也没个讲得清楚的教程」。确实,Windows的字体渲染问题一直是一个老大难,每隔一段时间就会有人吐槽Windows的字体有多难看、macOS的字体又有多美观。
和 @Yves 老师讨论
实际上,微软在这方面并非毫无作为,而是进行过多次优化。但由于软硬件上的种种限制,让广大群众至今没能真正享受到高质量的字体渲染效果。
今天就让我来带大家仔细讲讲Windows的字体渲染为什么这么差,以及如何用稳定的方法解决字体渲染问题。
长期使用 macOS 的用户可能无法理解 Windows 用户到底在发什么牢骚。
为了有一个直观的感受,我在 Windows 和 macOS 中各截取了一些文字。对比一下下面这两段文字,就会发现它们的实际观感区别很大。
macOS 下的字体
将 macOS 下的文字放大后观察,字体美观、边缘厚实,一笔一划很是清晰。
Windows 10 下的字体
Windows 的字体只能算是能够看清,但边缘总有些发虚,对比之后则略逊一筹。放大后观察,边缘有一些红绿小色块,「安」字中间的一横显得颜色很深,整体多少有些不协调。
而出现这种情况的原因有很多,我总结了以下 3 点——
屏幕的显示分辨率是首当其冲的问题。
为了描述这个问题是怎么出现的,除了屏幕本身的分辨率和尺寸之外,我们还需要了解显示器的一个重要参数:PPI(Pixels Per Inch),指的是「每英寸的像素数量」。
我们可以用一个公式来计算出屏幕的 PPI:√(纵向像素数² + 横向像素数²) / 屏幕尺寸
PPI 计算公式
比如一块 1920 x 1080 的 15.6 寸显示器,它的 PPI 就是 √(1920² + 1080²) / 15.6 = 141.21。从这个公式中可以看出「同等分辨率的屏幕越大,PPI 就越低」。
如果我们想在屏幕上显示文字,就需要在像素点阵中填充内容。比如你想在 12 x 12 的点阵下塞进一个中文汉字,只用黑白两色填充就只能得到图中的点阵文字。只有换成一个更大的点阵,笔画之间才会有空间填充更多的笔画细节,从而使笔画之间变得更为顺滑。
点阵字体
近些年出产的 Mac 都配备上了 Retina 屏幕,分辨率从 2560 x 1600 到最高的 5120 x 2880 不等,PPI 可以达到 227。实际使用时,macOS 通常会采用缩放,让一块高分辨率的屏幕显示更多的内容,文字自然会变得更加清晰。
而 Windows 方面,仍然有大量的电脑在使用 1920 x 1080 的分辨率和更低分辨率的显示器,大多数万元以下的笔记本配备的也是 1080P 甚至是 1366 x 768 的显示器。一块 15.6 寸的 1080P 屏幕,PPI 只能达到 141 上下。相比高 PPI 的 Mac,Windows 的文字显示自然比不过它。
不同 PPI 下,文字的显示效果对比
所以mactype,屏幕分辨率属于 Mac 天然的硬件优势。
第二个问题在于字体。字体的字形不同,也会影响字体的显示效果。
比如在 Word 中使用四号宋体,边缘会显得模糊,而小四、五号等字号时,边缘则十分锐利。即使直接在 Word 中使用苹方字体,边缘也会出现一定的模糊。
Hint 的误判
然而如果字体的 GASP 表不完善,就会让 Hint 误操作,本来就是可以正常显示字体的高分屏,但经过 Hint 处理过后,原本清晰的字体反而变得模糊、笔画高低不平了,这就是字体本身的问题。
这个问题曾出现在 Windows 的默认字体微软雅黑上。如今最新版的 Windows 10 中内置的微软雅黑已经进行过优化,比以前要好很多了。
如果排除上面两个因素,最后的问题就是系统的文字渲染方式了。
粗略地讲,Windows 目前采用三种不同的渲染方式,它们之间是相互补充的关系,同时存在于系统中。
其中的传统字体渲染引擎 GDI 很老,采用 GDI 的 Win32 软件在高分辨率屏幕下使用 100% 之外的缩放就会出现模糊。但由于采用 GDI 的软件实在太多,牵一发而动全身,微软无法轻易换掉 GDI。
于是 ClearType 便应运而生。ClearType 的原理是让显示器的 R , G , B 次像素放光,在 x 和 y 轴上增加一些颜色进行微调,使得文字更清晰。
MacType 效果展示
Windows 的字体渲染问题并非是微软完全不作为,因为在 Windows 10 的 1703 和 1809 中,字体方面都得到了小幅度的改进,微软雅黑这个字体本身也经历了多次迭代,还有传闻称今年四月份微软将会用兰亭黑体替换掉微软雅黑。但在目前,Windows 渲染效果差仍然是个不争的事实。
文章对产生这个问题的原因进行了分析,显示器分辨率,系统默认字体,老的引擎难以淘汰、新的引擎未能覆盖……但只要对症下药,这些问题都是可以解决的。分别从分辨率、字体、渲染引擎几个角度下手,就能搞定 Windows 的字体渲染问题。
文中的文字渲染机制介绍部分、Hint 方面的优化部分参考了下列文章,在这里特别感谢这些文章的原作者:
《认识字体渲染》@康上明学
《How to Make Windows Work Better on High-DPI Displays and Fix Blurry Fonts》@CHRIS HOFFMAN
《用 MacType 拯救你的 Windows 字体 | 一日一技》@Weiyi_Kong
《Windows 10 字体显示优化方案》@HydricAcid
《Windows 10 1703 字体优化方案(1.25-1.75x)》@洛晓晓晓晓
以上内容就是如何在 Windows 上享受更棒的字体渲染的相关内容介绍,喜欢侠外游戏论坛的朋友可以关注我们。
上一页123