paperclipを使ってて「縦長の画像をアップしたら横長になる」という問題。
これはpaperclipが悪いんじゃなくて、元のファイルもMacのPreviewで見ると縦長なんだけど、ブラウザで見ると横長。MacのPreview他、ExifのOrientationタグに対応したソフトで見ると縦長に見える。
Webアプリ的にはちょっと困る。「縦長の画像をアップしたら横長になった!」と言われても見てるツールの違いで最初から横長なんだから。
imagemagickのconvertにはExifのOrientationタグの内容に合わせて画像データを回転させてくれる超便利な-outo-orientオプションがあるのでそれを使えばいい。
paperclipはrmagickを使わず、convertコマンドを呼び出すだけで、好きなオプションが渡せるというイカシタ作りになっているのでこんな感じでOK。
class User < ActiveRecord::Base
has_attached_file :picture, convert_options: {all: '-auto-orient'}
end
allは複数のstyleが合った場合に全部にこのオプションを付けるという指定。originalも残るから安心。