デジタルSLR(私の場合はCanon EOS 550D)によって生成された生の画像からメタデータを抽出するツールを探しています。
写真は、ufrawの最新バージョンで変換できます( here はそのためのPPAです)。
コンパクトカメラでは、exifを使用しますが、これはjpgでのみ機能し、RAW画像では機能しません。
ヒントはありますか?
パッケージの説明からexifprobe
:
Exifprobeは、デジタルカメラによって生成された画像ファイル(いわゆる「生の」ファイル形式を含む)を読み取り、ファイルの構造とそれらに含まれる補助データとメタデータを報告します。 TIFF、JPEG、およびEXIFに加えて、プログラムは、MRW、CIFF/CRW、JP2/JPEG2000、RAF、およびX3Fを含む「生の」カメラデータを含むいくつかの形式、およびほとんどのTIFF由来の「生のDNG、ORF、CR2、NEF、K25/KDC/DCR、PEFなどの形式。
http://www.virtual-cafe.com/~dhh/tools.d/exifprobe.d/exifprobe.html
それは動作しますか?
あなたのコメントから、あなたが最終的にやりたいことは、日付に基づいてファイルの名前を変更することです。それがGUIの代わりにコマンドラインツールを使用する唯一の理由である場合、EXIF抽出/ファイル名を変更する代わりにphatch(リポジトリ内)を試すことができます。
Phatchを使用すると、イメージをバッチ処理できます(たとえば、フォルダー内のすべてのイメージに対して一連のアクションを実行できます)。可能なアクションの1つはrenameであり、<Exif_Image_DateTime>
などの変数を使用して、EXIFデータに基づいて名前を変更できます。アクションのリストを定義して保存したら、コマンドラインからphatchを使用することもできます。
私はexiv2ツールを使用します。これは、ufraw/darktableが生画像のexifデータにアクセスするのと同じライブラリです。 http://www.exiv2.org/ また、Nikon/CanonなどのメーカーのMakerNotesもサポートしています。
もし私があなただったら、これを行うための小さなPythonスクリプトを書いて、 pyexiv2
を引き込むことを検討したい。使い方は非常に簡単です。
>>> metadata = pyexiv2.ImageMetadata('test.jpg')
>>> metadata.read()
>>> metadata.exif_keys
['Exif.Image.ImageDescription',
'Exif.Image.XResolution',
'Exif.Image.YResolution',
'Exif.Image.ResolutionUnit',
'Exif.Image.Software',
'Exif.Image.DateTime',
'Exif.Image.Artist',
'Exif.Image.Copyright',
'Exif.Image.ExifTag',
'Exif.Photo.Flash',
'Exif.Photo.PixelXDimension',
'Exif.Photo.PixelYDimension']
>>> metadata['Exif.Image.DateTime'].value
datetime.datetime(2004, 7, 13, 21, 23, 44)
注:異なるカメラは日付に異なるフィールドを使用します。まず、使用可能なキーを確認してください。
生画像をサポートする必要があります。 Nikonが作成するNEF RAWファイルに対しても同様です。
そうでない場合は、類似した名前(つまり、異なる拡張子)のJPEGバージョンもありますか? RAWファイルを解析できる場合でも、EXIFデータのJPEGに目を通す価値があるかもしれません。
ヒント:「適切な」Pythonスクリプトを記述する代わりに、Pythonシェルを使用できます。これはテストに適していますが、繰り返し使用できるものが必要な場合は、おそらくスクリプトを作成する必要があります。
EXIFデータをいじる際の私のお気に入りの答えは exiftool です。移植性があり、無料で、オープンで、Perlで書かれており、そのような傾向がある人のためのPerlモジュールとして使用できます。
Windowsでも動作します。