iPhoneで撮影した写真が横向きになってしまう場合のcarrierwaveでの対処法
はじめに
カメラで撮影した写真には、位置情報や時間、画像の方向などの情報が含まれています。 それらの写真情報のことを Exiff というそうです。
iPhone,iPad の場合は、横向き撮影した際に最適化されるようにExif情報が付与されてしまいます。
( 詳しくはこちらのサイトで説明してあります。)
今回はこのExif情報ではまったので、解決方法をメモしておく。
解決方法
今回、画像のアップロードにはcarrierwaveを使用しています。
class PhotoUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick process :fix_exif_rotation ... def fix_exif_rotation manipulate! do |img| img.auto_orient! img = yield(img) if block_given? img end end version :thumbnail do process :resize_to_fill => [135, 135] end version :m do process :resize_to_fit => [1000, 600] end end
重要なところはfix_exif_rotation
です。
ここで、写真の自動最適化を削除しています。
以下がサンプル
まとめ
- carrierwaveの設定がいけないのかと大分はまりました。
- iPhoneのExifが知らなかったので勉強になりました。
- carrierwaveとs3の連携が鼻血でるぐらい簡単なので、それは別途ブログにまとめる。
- 写真がフリスクなのは特に意味はありません。
HerokuではじめるRailsプログラミング入門
posted with amazlet at 13.07.01
掌田 津耶乃
ソフトバンククリエイティブ
売り上げランキング: 107,961
ソフトバンククリエイティブ
売り上げランキング: 107,961