2010-10-17 68 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