我已经知道亚像素定位会导致DirectWrite在文本渲染上比GDI模糊。
但我的问题更加基础:为什么 DirectWrite(和相关方法)无法像GDI一样锐利地呈现文本?
换句话说:
是什么阻止 DirectWrite能够将文本对齐到最近的像素,就像GDI一样吗?
例如,这是硬件问题还是驱动程序架构问题?它是否只是未实现?或者其他原因?
较小的示例:
较大的示例:
直接 2D,带锯齿:
直接 2D,默认:
直接 2D(“经典 GDI”):
直接 2D(“自然 GDI”):
实际的 经典 GDI:
实际的 ClearType GDI:
注意:如果您认为所有这些都模糊,请运行
document.body.style.zoom = 1 / window.devicePixelRatio
在Chrome的控制台中查看并在之后查看它。
clearTypeLevel
设置为零的自定义呈现参数。请注意,锐利度是以精度为代价的。例如请查看旋转文本,在GDI中它看起来很粗糙,而且与次像素相比,在GDI中间距不均匀。 - Raymond Chen