1

我正在使用 MiniMagick 和 ImageMagick 以及这段代码在本地运行 Rails 3.2 应用程序

img.combine_options do |c| 
    c.gravity 'Center'
    c.font "#{::Rails.root}/public/fonts/Impact.ttf" 
    c.pointsize '125'
    c.kerning '-6'
    c.draw "text 0,-120 '#{self.line1}'"
    c.draw "text 0,-16 '#{self.line2}'"
    c.draw "text 0,88 '#{self.line3}'"
    c.fill "#ffffff"
end

在本地工作正常,文本按预期写在图像顶部并显示为白色。

一旦我将它部署到 Heroku(Cedar),我就没有收到任何错误,但文本以黑色写在图像的顶部。

这是我第一次在 Heroku 上同时使用 MiniMagick 和 ImageMagick,所以,也许我缺少颜色深度的东西?图片是PNG吗?

4

1 回答 1

3

在通过 ImageMagick 正确阅读MiniMagick可用的“draw”选项的命令行选项后,我发现这一段解决了这个问题:

选项按命令行顺序处理,因此请务必在 -draw 选项之前使用这些选项。

因此,通过更改传递选项的顺序,将填充颜色移动到“绘制”参数上方解决了它,如下所示:

img.combine_options do |c| 
  c.gravity 'Center'
  c.font "#{::Rails.root}/public/fonts/Impact.ttf"
  c.fill "#ffffff"
  c.pointsize '125'
  c.kerning '-6'
  c.draw "text 0,-120 '#{self.line1}'"
  c.draw "text 0,-16 '#{self.line2}'" 
  c.draw "text 0,88 '#{self.line3}'"
end

问题解决了。

于 2012-08-13T15:06:18.607 回答