[OSX]オートメーターでSIGMA DP1/DP2 MerrillのX3F(RAW)ファイルを自動リネーム
前世紀来の友人がSIGMAのものすごいカメラ、DP1/DP2 MerrillのX3Fファイルの取り扱いに困っているようだったので何か手助けできないかとやってみたことの記録。同系列のカメラを複数台、同時に使うとファイル名が同じ物が出来てしまうのが困るそうです。なるほど。
目次
シグマRAWファイルをExif情報を元にリネームする
二台同時に持ち歩いてもさすがに右手と左手で同時撮影はないでしょうから、Exifから撮影日時を取得してファイル名にすればいいなと、以前使ったExifToolを思い出し、OSXにはオートメーターがあるのでなんとかなるのではないかと安直に考えたのでした。
道具
- オートメーター
- ExifTool
シグマRAW(X3F)ファイルのさりげないバージョンアップ
実際にやってみると、オートメーター以前にコマンドラインでうまく動作しないのです。「Can’t read version 3.0 X3F image」とのメッセージ。3.0は未対応?なぜ?、と調べてみると、2012年3月にリリースされたMerrillの新ファームでX3Fのフォーマットが3.0となり、ExifTool付属のSigmaRaw.pmでは対応できなくなってしまっていました。
そこで、バージョンナンバーをチェックする箇所を無理やりいじくって泥縄式に対応しました。
ExifToolも対応してくれていた
と書いた所で、先ほどExifToolのサイトに行ってみると、9.24が出ていて、X3Fのバージョンについては解決しました。
Mar. 23, 2013 – Version 9.24
- Added ability to overwrite plus append output files (-w+!)
- Added support for Sigma X3F version 3.0 images
- Added a few new values for some Pentax tags
- Added a few new CanonModelID’s
- Decode Nikon D5100 and D5200 custom settings plus a few other Nikon tags
- Allow the value for missing tags extracted with the -f option to be configured via the API MissingTagValue setting (default is still “-“)
- Improved decoding of Sony LensSpec (again, thanks Jos Roost)
- Fixed bug reading QuickTime extended-size atoms
diffをとってみました。バージョンナンバーをチェックする箇所が2.3から3.0に変わっただけですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
diff -u SigmaRaw.pm /usr/bin/lib/Image/ExifTool/SigmaRaw.pm --- SigmaRaw.pm 2013-03-22 15:01:41.000000000 +0900 +++ /usr/bin/lib/Image/ExifTool/SigmaRaw.pm 2013-03-23 07:27:19.000000000 +0900 @@ -16,7 +16,7 @@ use Image::ExifTool qw(:DataAccess :Utils); use Image::ExifTool::Sigma; -$VERSION = '1.19'; +$VERSION = '1.20'; sub ProcessX3FHeader($$$); sub ProcessX3FDirectory($$$); @@ -560,13 +560,8 @@ # check version number my $ver = unpack('x4V',$buff); $ver = ($ver >> 16) . '.' . ($ver & 0xffff); -# if ($ver >= 3) { - if ($ver >= 10) { - &$warn($exifTool, "Can't read version $ver X3F image"); - return 1; -# } elsif ($ver > 2.3) { - } elsif ($ver > 12.3) { - &$warn($exifTool, 'Untested X3F version. Please submit sample for testing', 1); + if ($ver > 3) { + &$warn($exifTool, "Untested X3F version ($ver). Please submit sample for testing", 1); } my $hdrLen = length $buff; # read version 2.1/2.2/2.3 extended header |
ExifToolのインストール
ExifToolのインストールは「Mac OS X Package」をダウンロードしてきて、インストーラを使うと/usr/bin/exiftoolと/usr/bin/libに配置されます。ターミナルでexiftool ファイル名とするとずらずらーっとExif情報を表示してくれます。
オートーメーターの組み方
オートメーターはこんな感じです(画像クリックで拡大します)。オートメーターの使用手順を簡単に書いておきます。
- アプリケーションフォルダの中にAutomator.appというのがあるのでこれを起動。
- どのような形式で作成するか問われるので、「アプリケーション」を選択。
- 「ワークフローを作成するには・・・」というグレーの背景にさせたいことを左の「ライブラリ」からドラッグアンドドロップしていきます(「ライブラリ」が表示されていない場合は『表示」メニューから「ライブラリを表示」を選択してください)。
下の画像では『ファイルとフォルダ」から「指定されたFinder項目を取得」からのスタートになっていますが、これはデバッグ用に入れていました。各項目のタイトル部分でコントール+クリック(or 二本指クリック)すると「使用停止」が選べますので、デバッグ終了後はそのまま使えますね。
続いて、下記の項目をメイン画面にドラッグアンドドロップしていきます。
- フォルダの内容を取得(ドラッグアンドドロップで元フォルダを受ける)
- 変数の値を設定(元フォルダの中身を変数に記憶させます)
- Finder項目の選択を求める(リネーム後のファイルの保存先を尋ねるダイアログを出します)
- 変数の値を設定(ファイルの保存先を変数に記憶させます)
- シェルスクリプトを実行(入力の引き渡し方法: 引数として)(変数を引数として受け取って、ループさせ、ExifToolでリネームさせます)
X3Fが入ったフォルダをこのオートメーターのアイコンの上にドラッグアンドドロップすると、保存先を尋ねてきますので、フォルダを指定。順次、機種名_日付.x3fとリネームされていきます。保存先に同名のファイルがあるようであれば、-1、ー2などを付加して上書きをしないようにしています。友人の話ではX3Fだけでなく、JPEGも同様に変換してくれてるようです。
最後のシェルスクリプト部分だけ別途掲載しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#配列に入れる args=("$@") #配列数 argn=$# #保存するフォルダ folder=${args[$argn-1]} #配列の最後2つ(元画像の含まれるフォルダ、保存するフォルダ)を除いてループ #sdim0101_SIGMA DP1 Merrill_20130318_084800.x3f #というフォーマットで「保存するフォルダ」に保存。 #exiftoolのマニュアルは下記 #http://owl.phy.queensu.ca/~phil/exiftool/exiftool_pod.html for ((i=0;i<$argn-1;++i)) do exiftool -P -o "$folder" '-filename<${model}_${CreateDate}%-c.%e' -d %Y%m%d_%H%M%S "${args[$i]}" #オリジナルのファイル名を残しておく場合 #exiftool -P -o "$folder" '-filename<%f_${model}_${CreateDate}%-c.%e' -d %Y%m%d_%H%M%S "${args[$i]}" done #終了時に音を鳴らす。 afplay "/Applications/Messages.app/Contents/Resources/File Transfer Complete.aiff" |
オートメーターのサンプルアーカイブ
参考までにオートメータのファイルもアップしておきますが、初めて作ったものなので変かもしれません。それから、近頃ぼくのMacではダブルクリック解凍だとうまく動作しなくて困っています。ターミナルでunzipなら確実に解凍できます。
【注意】
作業開始前にはバックアップを取るなどして、万全の体制で臨んでください。あらゆる環境でテストしたわけではありません。ファイルがなくなったり、上書きされたり、開けなくなったりしても当方は一切責任を負いかねますのであくまでも自己責任でお願い致します。
ファイルへのリンク
http://www.boenkyo.com/wp-content/uploads/exif_date_sigma.app.zip