2013-07-22 32 views
0

我試圖在圖像中生成一些文本,該圖像將嵌入到電子郵件中。 我想盡可能多地看看郵件正文中的其他文本;所以我嘗試:使用rmagick生成的文本看起來很醜陋

i = Image.new(500, 100) 
d = Draw.new 
d = d.annotate(i, 0,0,0,25,nombre){ 
self.font = "Arial-Regular" 
self.pointsize = 12 
self.text_antialias = true 
} 

但輸出是可怕的(見output here

我使用Ubuntu,我已經安裝msttcorefonts(宋體出現在convert -list font)。我也嘗試過使用其他字體/ font_families,並關閉text_antialias同樣的運氣

任何提示?

回答

0

使圖像變大並增加DPI。或者,使圖像更大並使用更大的分值。在我看來,它看起來好像你的文本是別名,只是因爲它太小了。

+0

好的,但爲什麼Chrome可以呈現它小而美麗? – runixo

+0

Imagemagick使用dpi = 72。我認爲Chrome使用dpi = 96。因此,如果Chrome瀏覽器具有更大的dpi,則字符將呈現更多的像素。仔細看看你的例子。鉻字符確實有點高。而且,這兩個例子的暗示看起來不同。請記住,Linux有兩種字體配置系統。 X使用一個,GNOME使用另一個。一團糟。 [看這裏](http://neugierig.org/software/chromium/fonts/) – jsp

+0

有趣,謝謝。我發現如果我設置'background_color'(任何!)字體看起來更好。見: [無BACKGROUND_COLOR(http://i.imgur.com/dd5c4cY.png)/ [附BACKGROUND_COLOR(http://i.imgur.com/bQDsgrw.png) 我去報告一個錯誤rmagick,這裏看起來很糟糕.. 感謝您的鏈接! – runixo

1

問題幾乎可以肯定不是DPI,它是ImageMagick爲字體做筆畫和填充。在你的圖形上下文中嘗試d.stroke('transparent'),然後你應該看到填充,這是字體試圖繪製的實際區域,而不是它的輪廓。

相關問題