2013-07-22 30 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'),然后你应该看到填充,这是字体试图绘制的实际区域,而不是它的轮廓。

相关问题