Изображение Crop Amazon S3 (работает в автономном режиме) - PullRequest
1 голос
/ 25 октября 2010

Итак, я пытаюсь заставить изображение работать на 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

Я немного не в себе, поэтому я не уверен, как отладить это, любая помощь будет принята с благодарностью, я боролся с этим все выходные.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2010

Попробуйте Magick::ImageList.new(self.photo.to_file.path) вместо этого (обратите внимание .path в конце). То же самое с другим изображением. ImageList принимает только имена файлов:

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

0 голосов
/ 25 октября 2010

Если вы хотите принять загрузку изображений (или просто сохранить изображения) и изменить их размер, я настоятельно рекомендую использовать paperclip.

Это камень, который вы можете легко установить. Он отлично работает с S3 и может генерировать различные эскизы для вас за один раз.

Проверьте https://rubygems.org/gems/paperclip для более подробной информации.

...