Rmagick无法读取字体

Cri*_*ian 15 ruby fonts rmagick imagemagick

我有一段代码在我的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
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

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'
Run Code Online (Sandbox Code Playgroud)

我尝试重新安装imagemagick和rmagick gem,也使用这些标志:

brew install imagemagick --disable-openmp --build-from-source
Run Code Online (Sandbox Code Playgroud)

另外,如果我改变了

font = "/Users/xxxxxx/xxxxx/app/assets/fonts/PTSans-Regular.ttf"
Run Code Online (Sandbox Code Playgroud)

我认为额外的报价可能会妨碍我

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'
Run Code Online (Sandbox Code Playgroud)

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

Cri*_*ian 54

奇怪的是,这修复了它:

brew install gs
Run Code Online (Sandbox Code Playgroud)

错误让我困惑,因为它没有说什么的Ghostscript然而,根据工作/sf/answers/975546211/