3

我正在尝试使用抗锯齿平滑文本渲染。但它不是抗锯齿的。

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

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

负责绘制文本的代码可以在http://pastie.org/1073683上找到。 字体选项设置在第 17 行和第 20 行,如下所示:

// setting up antialiasing
cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY);

// set the font options to cairo
cairo_set_font_options(this->cro, cfo);

谁能告诉我如何使这两条线看起来一样?

4

1 回答 1

3
cairo_font_options_set_antialias(cfo, CAIRO_ANTIALIAS_GRAY);

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

于 2010-10-17T14:00:40.720 回答