1

Amazon S3で画像のトリミングを機能させようとしているので、次の機能があります

def update_attributes(att)
  scaled_img = Magick::ImageList.new(self.photo.to_file)
  orig_img = Magick::ImageList.new(self.photo.to_file(:original))
  scale = orig_img.columns.to_f / scaled_img.columns

  args = [ att[:x1], att[:y1], att[:width], att[:height] ]
  args = args.collect { |a| a.to_i * scale }

  orig_img.crop!(*args)
  orig_img.write(self.photo.to_file(:original))

  self.photo.reprocess!
  self.save

  super(att)
end

これはオフラインで正常に動作しています。これを Heroku + S3 にデプロイするために変更したのはすべて「to_file」です。受信しているエラー メッセージは次のとおりです。

undefined method `columns' for Magick::ImageList

私は少し深みがないので、これをデバッグする方法がわかりません。

4

2 に答える 2

0

代わりに試してくださいMagick::ImageList.new(self.photo.to_file.path)(最後に注意.pathしてください)。他の画像も同様。ImageListファイル名のみを取ります:

http://www.imagemagick.org/RMagick/doc/ilist.html#new

于 2010-12-04T01:31:12.997 に答える
-1

画像のアップロードを受け入れる (または単に画像を保存する) 場合は、サイズを変更することを強くお勧めしpaperclipます。

気軽に導入できる逸品です。S3 と完全に連携し、さまざまなサムネイルを一度に生成できます。

詳細については、 https://rubygems.org/gems/paperclipをご覧ください。

于 2010-10-25T13:02:47.743 に答える