【问题标题】:ImageMagick on Heroku won't take -fill as 'white'Heroku 上的 ImageMagick 不会将 -fill 设为“白色”
【发布时间】:2012-08-13 01:05:59
【问题描述】:

我正在使用 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吗?

【问题讨论】:

    标签: ruby-on-rails heroku imagemagick minimagick


    【解决方案1】:

    在通过 ImageMagick 将 command line options available 正确阅读到 MiniMagick 以获取“绘图”选项后,我发现这一段解决了这个问题:

    选项按命令行顺序处理,因此请务必在 -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-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    相关资源
    最近更新 更多