rubyでexif
デジカメ1台の時は、ファイル名でソートしていれば、
ほとんど困ってなかったんですが複数台のデジカメ
奥さんのデジカメ(IXY)と自分のデジカメ(xactiとDSi)の写真を
同一ディレクトリで混ぜてリネームとかしたい場合に
色々ツールがあるとは思うんですが、使い方がよくわからなかったりしたので
Rubyのライブラリを使ってみました。
RubyのEXIFライブラリはextexifというのがあったのですが
Ruby1.9.1でbuildできなかったので、exifrというのを使いました。
以下は写真を撮影順で連番ファイル名にリネームする場合とか(←奥さんの要望)
000.jpg,001.jpg,002.jpg... という感じになります。
require 'exifr' include EXIFR digit = 3 # filelist = Dir["*.jpg","*.JPG"] # <= Ruby1.9.1 only filelist = Dir["{*.jpg,*.JPG}"] filelist.sort { |a,b| JPEG.new(a).exif[:date_time_original] <=> \ JPEG.new(b).exif[:date_time_original] }.each_with_index { |file,num| File.rename(file,"%0#{digit}d.jpg" % num ) }
非常にシンプルに書けますね。
ここまで書いて思ったのですが、デジカメのEXIF情報って
デジカメの時計の情報が書かれるので、デジカメの時計が合っていないと微妙です。
旅行に行く時は各デジカメの時計を合わせましょう。