AppleScriptで写真の向きを直してみました

ウチはデジタルカメラやスマートフォンで撮影した写真をMacに転送して撮影日毎に整理しています。カメラの種類によっては撮影した際のカメラの向き通りにMac上で表示できない場合がある事が分かりました。

例えばこんな感じ。

EXIF Orientation 3

今までもこの事に気がついていたにも関わらず放置していたのですが、iPhone 7 Plusで過去の旅行の写真を知り合いに見せようとしたら逆さまで不便だったので解決してみる事にしました。

1枚ずつ確認して回転しても良いのですが母数となる写真の数が約4万枚なので手作業で確認しながら回転させるのはあまりに非効率です。そこで、AppleScriptを使って選択したフォルダ(サブフォルダを含む)に含まれている写真全てに対して撮影時の向きを確認して画像をその向きに回転する様にしてみました。

EXIFデータにはカメラが撮影時の向きを記録しており(対応している機種の場合)、ExifToolというフローアプリケーションを用いてそれを読み出す事ができます。

exiftool -Orientation -n <ファイル名>

とする事で向きに応じて1桁の数字が返ってきます。殆どの場合で以下4つの数字が返送されると思いますが、それぞれに以下の向きを意味しています。

  • 1 = Horizontal (normal)
  • 8 = Rotate 270 CW
  • 6 = Rotate 90 CW
  • 3 = Rotate 180

AppleScriptでこれを判断して対象の写真を回転、保存する作業を自動化すれば約4万の写真から向きの正しくないものを自動修正できそうです。ということで作ってみたスクリプトが以下の通りです。スクリプト初心者なのでより効率良い方法があるのかもしれませんが、これでひとまず全て正しい向きで表示される様になりました。

スクリプトファイル自体をzipファイル化したものをアップしておきます。利用は自己責任でお願いいたします。