Exifの写真向きを多用するiphoneの写真はそれはそれで自然なのですが、フォトライフにアップロードすると、なんというか、気持ち悪いのですね。
画像の向きを修正せずにブログにアップロードしブラウザで表示したら
- windowsは反転したまま
- MacOSXはは画像だけを表示したら反転が修正される
- iOS はブラウザ中で反転する。
的なことが起きていた。すごく気持ち悪い?
ちゃんと調べるのも面倒なので、写真の向きを修正するようにした。
向きを正向きに修正し、orientationを修正
同じように見えても、Exifは修正されてる。
( orientation = 1 )
この状態にしてアップすると当然うまく行く。
Exifを考慮してUbuntuやOS Xは画像を表示してくれる、でもWindowsはそれをしてくれないWindowsがしてくれないので、当然ブラウザもやらなくていいという発想なのでしょうか。
画像の向きを修正してExifデータも修正する。
#!/usr/bin/env ruby #coding:utf-8 require 'rubygems' require 'mini_exiftool' require 'pp' unless ARGV.size > 0 then puts " usage : #{__FILE__} 画像ファイル [画像ファイル], [画像ファイル].. " puts "\t画像の向きを修正してExifをノーマルに合わせます" end ARGV.each{|f| next unless File.exist? f t = MiniExiftool.new f next if t["Orientation"].nil? case t["Orientation"] when /Horizontal/ # Orientation 1 when /Mirror horizontal/ # Orientation 2 `mogrify -flop '#{f}' ` when /Rotate 180/ # Orientation 3 `mogrify -rotate 180 '#{f}' ` when /Mirror vertical/ # Orientation 4 `mogrify -flip '#{f}' ` when /Mirror horizontal and rotate 270 CW/ # Orientation 5 `mogrify -flop '#{f}' ` `mogrify -rotate 270 '#{f}' ` when /Rotate 90 CW/ # Orientation 6 `mogrify -rotate 90 '#{f}' ` when /Mirror horizontal and rotate 90 CW/ # Orientation 7 `mogrify -flop '#{f}' ` `mogrify -rotate 270 '#{f}' ` when /Rotate 270 CW/ # Orientation 8 `mogrify -rotate 270 '#{f}' ` end t["Orientation"]=1 t.save }