Ruby on Rails

【Ruby on Rails】Carrierwaveでアップロードした画像が回転してしまう場合の対応方法

Carrierwaveでアップロードした画像が回転してしまう場合の対応方法メモ。

環境

  • Carrierwave
  • MiniMagick

発生した事象

アップロードした画像が上下反対になってしまう事象が発生。

根本原因

  • Exifの回転情報が残ってしまっていた

対応方法

  • アップロード時にExifの回転情報を除去する

config/initializers/carrierwave.rb に下記メソッドを作成

module CarrierWave
  module MiniMagick
    def fix_exif_orientation
      manipulate! do |image|
        image.auto_orient
        image = yield(image) if block_given?
        image
      end
    end
  end
end

各アップローダーに上記プロセスに追加する

例) app/uploaders/hoge_uploaders.rb

class HogeUploader < CarrierWave::Uploader::Base
  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  include CarrierWave::MiniMagick

・・・

  # Exifの回転情報を除去
  process :fix_exif_rotation

・・・

-Ruby on Rails