在某些配色方案中,Windows 所做的这种子像素渲染使字体完全不可读。
听起来好像 ClearType 没有正确校准。
仅当文本颜色与显示器的颜色平面匹配时,才可能显示“像素完美”。对于黑色或灰度文本,这意味着灰度显示(例如,高分辨率和昂贵的数字单色显示器在医学成像领域很流行)。
否则,您会遇到一个基本事实,即颜色分量在显示器上是物理分离的。ClearType 的概念是调整图像以补偿颜色平面之间的实际物理偏移。
具有高精度套准的印刷媒体最接近多色平面而没有任何偏移。
现在,在某些情况下禁用 ClearType 仍然有意义——当图像打算保存在文件中而不是在本地显示器上显示时,禁用 ClearType 可以产生在更广泛的显示器上清晰易读的结果,并且更好地压缩。(但为了获得最佳效果,请发送矢量并让最终用户显示补偿其特定的子像素结构)
在 GDI 中,ClearType 的控制是通过LOGFONT
命令文本绘图函数的结构设置的,该函数使用哪些字体系列、大小和属性。在 GDI+ 中,SetTextRenderingHint
在Graphics
实例上使用。
因为 ClearType 的使用是由应用程序与大小、重量和其他属性同时设置的,所以无论有无请求,您的字体都会受到请求。但是,ClearType 并非与所有字体兼容,通过强制不兼容,您将避免单独为您的字体使用 ClearType。
该LOGFONT
文档对 ClearType 有以下注释:
以下情况不支持 ClearType 抗锯齿:
- 文本在打印机上呈现。
- 显示设置为 256 色或更少。
- 文本呈现给终端服务器客户端。
- 该字体不是 TrueType 字体或带有 TrueType 轮廓的 OpenType 字体。例如,以下不支持 ClearType 抗锯齿:Type 1 字体、没有 TrueType 轮廓的 Postscript OpenType 字体、位图字体、矢量字体和设备字体。
- 该字体已调整嵌入位图,适用于包含嵌入位图的任何字体大小。例如,这通常出现在东亚字体中。
此外,gasp
TTF 格式的表格有几个指定的字段来影响 ClearType 的使用。

https://www.microsoft.com/typography/otspec/gasp.htm
和https://fontforge.github.io/fontinfo.html#gasp上的文档
当然,请确保head
未设置表中的“针对 ClearType 优化”位。