22

我已经知道与 GDI 相比,亚像素定位会导致DirectWrite 文本呈现模糊

然而,我的问题更基本一点:为什么DirectWrite(和相关方法)不能像 GDI 一样清晰地呈现文本?

换句话说:
是什么阻止了 DirectWrite 能够像 GDI 那样将文本捕捉到最近的像素?

例如,是硬件问题吗?驱动架构问题?它根本没有实施吗?或者是其他东西?


较小的样本:

更大的样本:

Direct2D,别名:

Direct2D,默认:

Direct2D(“经典 GDI”):

Direct2D(“自然 GDI”):

实际经典 GDI:

![](http://i.stack.imgur.com/kbdPb.png)

实际的 ClearType GDI:

在此处输入图像描述


注意:如果所有这些在您看来都模糊不清,请运行

document.body.style.zoom = 1 / window.devicePixelRatio

在 Chrome 的控制台中,然后查看它。

4

1 回答 1

19

你不是在比较喜欢和喜欢。您的 Direct2D 示例都以灰度呈现,而 GDI 和 Linux 示例使用亚像素抗锯齿(在 Windows 上也称为 ClearType)。

此页面描述了启用 cleartype 所需的操作:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd368170%28v=vs.85%29.aspx

NB 当测试这样的渲染时,总是值得使用 Windows 放大镜或类似的工具来检查你是否真的得到了你认为你得到的东西。

于 2011-12-29T01:46:14.647 回答