как редактировать существующее изображение (auto_orient!) с CarrierWave :: RMagick? - PullRequest
0 голосов
/ 25 августа 2018

У меня есть:

class Painting < ActiveRecord::Base
  mount_uploader :image, ImageUploader
  ...
end

и

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  storage :file
  process :fix_exif_rotation


  def fix_exif_rotation
    manipulate! do |img|
      img.auto_orient!
      img = yield(img) if block_given?
      img
    end
  end

end

, это прекрасно работает на новом загружаемом изображении, но я хочу, чтобы скрипт выполнял auto_orient! на каждом уже существующем изображении, потому чтоЯ просто добавляю код fix_exif_rotation, и старое изображение имеет проблему с ориентацией ....

Я пытаюсь:

Painting.first.image.fix_exif_rotation

CarrierWave :: ProcessingError (Не удалось манипулировать с помощью rmagick, возможно, это такне изображение?)

Painting.first.image.auto_orient!

NoMethodError (неопределенный метод `auto_orient! 'для #)

так какой хороший метод?

1 Ответ

0 голосов
/ 25 августа 2018

Попробуйте с пересозданием версии! метод https://github.com/carrierwaveuploader/carrierwave#recreating-versions

Painting.first.image.recreate_versions!

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

...