2010-10-17 67 views
3

我正在尝试使用抗锯齿平滑文本呈现。 但它不是反锯齿。使用开罗字体平滑

http://tinypic.com/r/2h7dy1i/4 http://oi38.tinypic.com/2h7dy1i.jpg

第一行是使用的pango和开罗PNG图像创建。 第二行只是一个html <span>标记。它在Firefox中,Ubuntu和Gnome DE。 如果比较两行之间的“W”和“v” ,则可以更好地理解差异。

负责绘制文本的代码可以在上线17设置http://pastie.org/1073683 字体选项和20像这样被发现:

​​

谁能告诉我怎样才能让这两条线看起来一样?

回答

2
cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY); 

你自找的,你说对了。要获得比赛,您需要CAIRO_ANTIALIAS_SUBPIXEL。但是,当您将文本绘制到可能在另一台机器上显示的图像时,这并不合适。不能保证该机器上的显示器是具有可预测顺序的RGB条纹的LCD面板。或者说它在横向方向。或者它以确切的原始尺寸显示。当不匹配时,文本看起来会很差。

+0

我将使用此代码在运行Debian lenny的服务器中生成映像。人们会在他们的显示器中看到它。我无法知道他们将使用哪个监视器。所以从你的回答看来,如果使用VRGB,生成的图像将在VRGB兼容显示中显示抗锯齿。在其他显示器上它看起来很糟糕。我对吗?? – 2010-10-17 18:01:18

+0

你有什么是正确的。与此相比:http://meta.stackexchange.com/questions/65398/disable-cleartype-subpixel-rendering-for-image-based-flair – 2010-10-17 18:03:19

+0

因此,Firefox也首先确定我的显示类型。然后使用兼容的亚像素抗锯齿选项。如是。我怎么知道firefox使用哪个antialias选项?以及我如何模仿脚本中的相同行为,至少在我的电脑中,我可以正确地看到它的反锯齿。 – 2010-10-17 18:07:24