macOS 14 和 RHEL7 之间的 Roboto 字体差异

Roboto font difference between macOS 14 and RHEL7

我正在开发一个视觉回归系统,该系统使用无头 chrome 在本地截取组件屏幕截图,并在 CI 内部构建期间截取组件屏幕截图,然后比较两者。

尽管如此,我 运行 遇到了一个问题,字体在我的机器 (macOS) 和 CI (RHEL7) 上呈现的不同。

我正在使用 google 的 Roboto 字体,我已经下载并创建了一个 CustomRoboto 字体来缓解本地安装的 Roboto 的问题。

这是我机器生成的截图:

这是由 CI 生成的:

这是差异:

如果你仔细观察,这些字母比我机器上的要小 "higher"。

与 CI 相比,我更愿意在本地创建 "truth" 屏幕截图。但我最好的猜测是在 CI.

上进行

macOS 使用与 Linux 不同的字体渲染代码,两者都不是很理想。在 RHEL 上,使用了 FreeType 库,可以对其设置进行各种调整以获得不同的结果(甚至对于单独的字体和字体大小)。从理论上讲,应该可以将其配置为类似于 macOS 处理字体渲染的方式。

有关其中一项尝试,请参阅 The sad state of font rendering on Linux for some background and How to achieve MacOS font rendering in Linux。请注意,字体本身也会影响不同渲染引擎显示它的方式,因此适用于一种字体的可能不适用于另一种字体。