Rmagick无法读取字体。

15

我有一段在我的Rails应用程序中绘制文本于图像上的代码,最近可能升级到OS X Yosemite后,它在本地机器上读取字体时出现了问题(生产服务器运行良好)。

我可以将其简化为以下示例:

require 'rvg/rvg'
font = '"/Users/xxxxxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf"'
rvg = Magick::RVG.new(100,100) do |canvas|
  canvas.text(0, 0, 'my text').styles(font: font)  
end  
rvg.draw

我遇到了这个错误

Magick::ImageMagickError: unable to read font `"/Users/xxxxxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf"' @ error/annotate.c/RenderFreetype/1153: `(null)'
from /Users/xxxxxxxx/.rvm/gems/ruby-2.0.0-p353@xxxxxxxx/gems/rmagick-2.13.2/lib/rvg/misc.rb:322:in `get_type_metrics'

我尝试重新安装了ImageMagick和RMagick gem,并使用了这些标志:

brew install imagemagick --disable-openmp --build-from-source

Also, if I change

font = "/Users/xxxxxx/xxxxx/app/assets/fonts/PTSans-Regular.ttf"

我认为额外的引号可能会妨碍操作,然后我得到了...

Magick::ImageMagickError: non-conforming drawing primitive definition `Users/xxxxx/xxxx/app/assets/fonts/PTSans-Regular.ttf' @ error/draw.c/DrawImage/3170
from /Users/xxxxxxx/.rvm/gems/ruby-2.0.0-p353@xxxx/gems/rmagick-2.13.2/lib/rvg/misc.rb:546:in `draw'

我也尝试从http://xquartz.macosforge.org/landing/安装最新版本的XQuartz。


你介意尝试 font = 'url(/Users/xxxxxx/xxxxx/app/assets/fonts/PTSans-Regular.ttf)' 吗?整个字符串使用单引号,不要再加引号。在我的Ubuntu上,对引号类型的依赖关系甚至更加奇怪。 - Aleksei Matiushkin
谢谢,但问题完全不同。我已经添加了一个答案。 - Cristian
1个回答

54

1
太棒了!安装 gs 解决了我的问题!! - Nicholas Terry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接