1

私は、ImageMagickとこのコードでMiniMagickを使用してRails3.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オプションの前に必ずこれらのオプションを使用してください。

したがって、オプションが渡される順序を変更することにより、塗りつぶしの色を「描画」パラメータの上に移動すると、次のように解決されます。

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 に答える