追記あり: iPhoneOS 2.1 でGPS情報の問題は修正されました。
追記あり: Tigerで動作しなかったのでTiger用を新たに追加
前のエントリで紹介したPhotoGPSEditorは高機能かつ簡単にGPS情報を編集できるのですが、
何枚もある写真を一枚一枚書き換えるのも面倒です。
どうせなら、iPhoneから写真を母艦に写す時に一括して修正したいですよね?
そこで以前紹介したイメージキャプチャ.appの自動処理機能を使って出来ないものかと作ってみました。
Exif(GPS含む)を読み書きするコマンドラインツールのExifToolを使って
longitudeRefの値を”West”から”East”に書き換えるコマンドをAutoMatorでApp化させました。
AppleがGPSのバグを直してくれるまでの場つなぎにどうぞ〜。
RewriteGPSInfo.app
RewriteGPSInfo.appの処理の流れは以下とおりです。
まず、ファイルタイプでふるいにかけます。これはJPEGファイルにしかGPS情報は付加されていないからです。
それからJPEGファイルをシェルスクリプトで処理します。
スクリプトの内容はまず、GPSLongitudeRef情報があるものだけをそれをEastに書き換えるようになっています。
こうした理由はJPEGファイルでもダウンロードしたファイルにはGPS情報が入っていない場合があるからです。
ExifToolの処理によって、書き換えられたJPEGファイルは元画像を上書きされ、
オリジナルファイルはJPG_originalという拡張子で保存されます。
ただ、Exifデータとしての撮影日はそのままですが、ファイルの変更日は処理を書けた日になります。
for f in "$@" do r=`/usr/bin/exiftool -gpslongituderef $f` if [ ${#r} -gt 0 ] ;then exiftool -gpslongituderef=East "$f" fi done
シェルスクリプトははじめて書いたので無駄が多いかも知れません。添削歓迎です。
使い方
イメージキャプチャ.appの自動処理の「その他」をクリックして、RewriteGPSInfo.appを選んで下さい。
あとは、iPhoneから転送するだけです。
もう少し詳しい使い方はこちらをどうぞ。
動作実験
- iPhone内のカメラロールにある画像総数(jpegとpng) 131枚
- iPhone内のカメラロールにあるpng画像 19枚
- iPhone内のカメラロールにあるjpeg画像 112枚
- iPhone内のカメラロールにあるjpeg画像(GPSなし) 36枚
131枚全画像を自動処理なしで単純に母艦に転送した場合、ざっくり8〜9秒くらいでした。
131枚全画像をアプリでGPS情報を修正しながら転送した場合、ざっくり30秒*1くらいでした。
実際に書き換えが必要になる画像は76枚の処理時間は約20秒くらいですね。
手動で書き換える手間を考慮するとこれでも十分楽にできるようになったのではないでしょうか?
まともなGPS情報に修正された写真をWebサービスにアップロードして楽しんだりしてみて下さい。
旅行の道中にとった写真なんかをPhotoGPSEditorでまとめて時系列で見ると移動の軌跡がわかる感じで楽しかったです。
適当ExifToolのオプションを弄ってみたり、
ExifToolにはPerlのライブラリもあるようなのでPerlスクリプトを書いたりしてみて下さい。
誰かRubyのライブラリも書いて〜。
っていうかAppleさん早くバグを直して下さい。
ダウンロード
RewriteGPSInfo.appはiPhoneを使って日本で撮影された?写真のGPS情報のlongitudeRefの値を
”West”から”East”にただ単純に、書き換えるAutoMatorアプリです。
ExifToolがインストールされている必要があります。
Macユーザ向けにインストーラとしてパッケージされたdmgファイルが配布されて居ます。
インストールはdmgファイル内のインストーラをダブルクリックしウィザードに沿ってすすめるだけで簡単にインストールされます。
RewriteGPSInfo.appを使ってデータが破損などしても責任は負いかねます。自己責任でお願いします。
Tiger版
RewriteGPSInfo.appをダウンロードする
Leopard版
RewriteGPSInfo.appをダウンロードする
関連エントリ
iPhoneのカメラで撮ったGPS情報を ”地道に” 修正してやる - griffin-stewieの日記
RewriteGPSInfoをドロップレットとして動かす方法 - griffin-stewieの日記
*1:転送時間+自動処理の時間