Mac で Exif を編集したり削除したりできる「ExifTool」


中居はまだ愛知県で遅くまで仕事をしております。(この文章を名鉄急行の中から書いております)

今日のブログは、当ブログ始まって以来の私が書いてないレアな記事!!

ウチのMacに詳しいスタッフが、Macネタブログ記事を書きました(あらかじめ用意しておりました・・ここぞというピンチの時に使おうとおもっていた虎の子記事!ついに使っちゃいました・・)。で、毛色がちょっと違うけど、プロカメラマンには役に立つと思われるネタです。

難しいかもしれませんので、興味のない人は読まなくても良いですし、この件に関しまして、中居は一切わかりませんのので質問されても答えられませんがご了承ください。

ではでは、興味のある人は、力作ブログをじっくりお読みくださいませ・・。




今回の記事は、パンプロ staff が担当しています。

Mac の Terminal(ターミナル)で Exif データを編集できる ExifTool をご紹介したいと思います。
ターミナルを使うと、ファイルを開くことなく大量のファイルを高速処理することができます。
ExifTool by Phil Harvey から「Mac OS X Package:ExifTool-x.xx.dmg」をダウンロードして、インストールしてください。(記事執筆時点でのヴァージョンは、9.31 です。ExifTool をダウンロード済みの方は、最新ヴァージョンをインストールし直してください。Windows版のexiftoolも用意されています。)
ほとんどの画像形式のほか、主要なカメラの RAW データにも対応しています。
使いこなすには perl というプログラミング言語の知識が必要ですが、簡単な操作なら全く難しくありません。(筆者も perl の知識なんてありません。)

それでは「ターミナル」を起動してください。「アプリケーション/ユーティリティ」フォルダにあります。
(ExifTool のインストールは終わっていますよね?)

Exif データを表示する。
 は半角スペース
「exiftool 」に続けて Exif を確認したいファイルのパスを入力して[return]キーを押すと Exif データが表示されます。例えばデスクトップの「Photo」フォルダの中にある「Picture_01.jpg」ファイルの場合は、「exiftool Desktop/Photo/Picture_01.jpg」とします。
このファイルパスを入力するというのがとても面倒なのですが、ターミナルウインドウにファイルをドラッグ&ドロップすると、そのファイルパスが自動で入力されます。

画像ではドロップ前にパスが入力されていますが、
実際はドロップした後に入力されます。

今度は、ターミナルの[シェル]メニュー → [新規ウインドウ](cmd+N)で新しいウインドウを開いて「exiftool -s 」というように「-s」をつけて、同じファイルをドラッグ&ドロップ、[return]キーを押してみてください。
「exiftool 」と「exiftool -s 」で表示させるデータを見比べてみると、項目名が微妙に異なっています。「File Name」→「FileName」のようにスペースを取り除いただけのものがほとんどですが、「Camera Model Name」→「Model」という場合もあります。
この「-s」をつけて表示される項目名を「タグ」といい、ExifTool を使う上で、重要な要素です。
Exif をタグ名で表示させる
exiftool -s 
「exiftool タグ名 」とすると、知りたい情報だけを表示させることができます。「exiftool タグ名 タグ名 」として、複数のタグを指定することもできます。
例えば、「exiftool -iso -shutterspeed -fnumber 」とすると、ISO 感度、シャッタースピード、絞り値が調べられます。

ちなみに「-lang ja 」オプションを追加すると、日本語で表示させることができます。

ターミナルウインドウではデータを見づらいので、「exiftool -csv ファイルパス > 書き出し先のフォルダパス/任意の名前.csv」[return]キーで csvファイルを書き出すことができます。

コマンド名、タグ名は大文字で書いても小文字で書いても関係ありません。
「-shutterspeed」を「-ShutterSpeed」や「-ShUtTeRsPeEd」としても構いません。

複数のファイルを処理する
ターミナルウインドウに、複数のファイルをドラッグ&ドロップするとまとめて処理してくれます。
ファイルではなくフォルダをドラッグ&ドロップすると、フォルダの中身全てを対象にすることができます。
「-r」オプションをつけると子フォルダ、孫フォルダの中まで対象にできます。
また、ワイルドカード「*」を使って複数のファイルを指定することがでます。
例えば、「デスクトップ/Photo」フォルダの中の jpg ファイルだけを対象にしたい場合は、「Photo」フォルダをドラッグ&ドロップして(ドラッグ&ドロップでパスを入力すると、パス名の最後にスペースが入ってしまうので、スペースを削除してから)「/*.jpg」と入力してください。(この場合、拡張子が「jpeg」のファイルは対象外になります。)

Exif データを編集する
 は半角スペース
exif を編集するには「exiftool タグ名=書き換える内容 ファイル(フォルダ)パス」というようにします。「-タグ名=書き換える内容」はスペースで区切らないことが重要です。書き換える内容がスペースで区切られている2ワード以上の場合は「'」または「"」で囲む必要があります。
例えば、当サイトの写真のほとんどはライカやカールツァイスの古いレンズを使用しているので、レンズ情報は Exif に記録されません。
レンズ情報を追加するには「exiftool -lensid='Leica Summicron-R 50mm f/2.0' 」とタイプしてファイルをドラッグ&ドロップ、[return]キーを押下です。元々レンズ情報が記録されているファイルは、レンズ情報が書き換えられます。
「1 image files updated」というメッセージが表示されたら成功です。
「元の名前_original」という名前でオリジナルファイルを残してくれるので、安心です。
オリジナルファイルなんかいらない、という場合は、「-overwrite_original」オプションをつけて「exiftool -overwrite_original -lensid='Leica Summicron-R 50mm f/2.0' 」とします。
コピーを作らずに、ファイルを上書きする
exiftool -overwrite_original 

ファイルを開くことなく画像を回転させることもできます(90°単位)。jpg ファイルを劣化させることもありません。
exif には、シャッターを押したときのカメラの角度が記録されています。カメラの構えの角度のタグは「Orientation」です。正位置(ふつうの横位置のことです)で撮影した写真の「Orientation」の値は「Horizontal (normal)」です。後は時計回りに順番に「Rotate 90 CW」「Rotate 180」「Rotate 270 CW」です。例えば、カメラを右90°回りの縦位置で撮影された写真を左90°回転させるには、正位置で撮影したことにしてやればいいので「exiftool -orientation=horizontal 」に続けてファイルをドラッグ&ドロップ、[return]キーです。(「Horizontal (normal)」の「 (normal) 」は省略することができます。)
「Orientation」タグは、「-n」オプションをつけることで、値を文字列ではなく数値で表すことができます。
Horizontal (normal) = 1
Rotate 90 CW = 6
Rotate 180 = 3
Rotate 270 CW = 8
となります。先ほどの「exiftool -orientation=horizontal 」は「exiftool -n -orientation=1 」と同じです。
写真をを回転させる
exiftool -n -orientation=
「=」の後にスペースを空けずに「1または3,6,8」その後にスペースを空けてファイルまたはフォルダをドラッグ&ドロップしてください。
「Orientation」タグで鏡像にすることもできます。「1,3,6,8」以外の数値を指定して試してみてください。

写真に位置情報を追加したり修正するには、北緯か南緯かを表す「GPSLatitudeRef」、東経か西経かを表す「GPSLongitudeRef」、緯度を表す「GPSLatitude」と経度を表す「GPSLongitude」の4つのタグを編集します。
GPS 機能付きのカメラでも誤差があることが多いので、正確な位置情報に修正することができます。
緯度と経度を調べるには、Google Map で住所を検索して、目的の位置にズームアップします。目的地を副ボタン(右ボタン)クリックして、コンテキストメニューの[この場所について]をクリックすると、Google Map の検索窓に数字が並びますが、これが緯度と経度です。
弊社の住所で試してみました。

「この場所について」をクリックすると、
検索バーに緯度と経度が入力されます。
これで我が社の緯度と経度がわかったので、写真に位置情報を追加してみます。
「exiftool -gpslatituderef=n -gpslongituderef=e -gpslatitude=35.639288 -gpslongitude=139.727168 
「プレビュー」で開いて確かめてみます。
緯度と経度の表記には、なぜか1秒ほどの誤差があるのですが、[場所を確認]をクリックすると正確な場所が Google Map で表示されました。
GPS 情報を追加・編集する
(n)か 南(s)かを指定 -gpslatituderef=
(e)か 西(w)かを指定 -gpslongituderef=
「北緯」「東経」を指定済み -gpslatituderef=n -gpslongituderef=e 
緯度を指定 -gpslatitude=
経度を指定 -gpslongitude=
緯度・経度の小数点以下を「分・秒」(60進法)で入力したい場合は次のようにします。
「exiftool -gpslatitude='35 deg 38'' 21.44"' -gpslongitude="139 deg 43' 37.80""" 」(緯度は「'」で、経度は「"」で囲っています。)
GPS 関連のタグには、他にも海抜を表す「AltitudeRef」などがあります。

撮影日時を修正したい場合は、ちょっと特殊なやり方があります。
カメラの時計のズレを調整したり、海外で撮影した写真の撮影日を現地時間に修正する、といったこととができます。
撮影日時に関係しそうなタグには「ModifyDate(ファイル作成日時)」「DateTimeOriginal(オリジナルデータ作成日時)」「CreateDate(デジタルデータ作成日時)」という3つのタグがあります。これらを個別に編集してもいいのですが、まとめて編集できる「AllDates」という特別なタグがあります。
「AllDates+」「AllDates-」で元の日時から任意の日時を増減させることができます。
撮影日時を修正する例
プラス 1時間 exiftool -alldates+=1 
マイナス 1分 exiftool -alldates-=0:1 
プラス 3分14秒 exiftool -alldates+=0:3:14 
マイナス 1年 exiftool -alldates-='1:0:0 0:0:0' 
プラス 2ヶ月 exiftool -alldates+='0:2:0 0:0:0' 
2013年1月23日4時32分10秒 exiftool -alldates='2013:1:23 4:32:10' 


Exif データを消去する
 は半角スペース
個別のタグを消去するには「exiftool -タグ名= ファイルパス or フォルダパス」とします。
「-タグ名=」の後に半角スペースを空けてファイルかフォルダをドラッグ&ドロップして[return]キーです。
タグ名にもワイルドカードを使用することができます。
GPS データを削除したい場合は「-gps*」とすると、「gps」から始まる全てのタグを指定したことになります。
位置情報を消去する
exiftool -gps*= 
「=」の後ろに半角スペースを空けて、ファイルやフォルダをドラッグ&ドロップして[return]キーを押してください。
「exiftool -geotag= 」でも GPS 情報を消去できます。

Exif を全て削除するために、「All」というタグが用意されています。
全ての Exif を削除する
exiftool -all= 
全ての Exif を削除してコピーファイルを作らない
exiftool -all= -overwrite_original 

こんなことも
RAW ファイルからプレビュー画像を抜き出す
exiftool -b -previewimage -w _prv.jpg 
RAW ファイルからフルサイズの jpg 画像を現像する
exiftool -b -jpgfromraw -w .jpg 
「-previewimage」は「元の名前_prv.jpg」、「-jpgfromraw」は「元の名前.jpg」というファイルを元のファイルと同じディレクトリに作成します。
「-previewimage」で作成される jpg 画像のサイズは、カメラごとに決まっています。D3, D800, D800E の RAW データは、570×375px でした。EOS 7D の RAW データは、フルサイズ(5,184×3456px)の Preview Image を持っていて「-jpgfromraw」には対応していませんでした。Preview Image を作成しないカメラもあります。

撮影日時でファイルをリネームする。「yymmdd_HHMMSS.拡張子」形式
exiftool "-filename<createdate" -d %y%m%d_%H%M%S%%-c.%%e 
元のファイル名に戻すことはできません。

コピペとファイルのドラッグ&ドロップだけでできることも多いので、ターミナルなんか使ったことない、という方も挑戦してみてください。

カテゴリー: 特別番外編, プロカメラマンに役立つ話。 パーマリンク

Mac で Exif を編集したり削除したりできる「ExifTool」 への4件のフィードバック

  1. Koji のコメント:

    いつも楽しく拝見しています。

    この記事に関連してですが、D810のexifデータを書き換えてあたかもD800で撮影したように出来ませんでしょうか? これまでのRAW現像ソフトウエアで読み込めるように出来ればと考えています。

    ご教示頂ければ幸いです。m(. .)m

    • 中居 中也 のコメント:

      現像ソフトはCaptureOneProでしょうか?そうでしたら、まだD810未対応のようです。そもそもExifデータを変えて、現像できるような簡単な仕組みではないとおもいます。何かわかりましたら、追記します・・。

  2. raizan2ame のコメント:

    まだ全然読み終わっていませんが、exiftoolの使い方の一歩目がわかったのでたいへん助かりました。exifを表示できたので、あとはなんとかなると思います。
    有料アプリがいいかどうか調べ始めたときだっただけに、全くタイミングがいいでした。

  3. MIMIMI のコメント:

    新しく購入したカメラの日付設定を一時間間違えてしまい、同じイベントで使用した他のカメラと時系列が揃わず困っていました。JPEGのEXIF変更ツールはいろいろありますがRAWに対応したものは少ないですね。紹介されているExiftoolでいとも簡単に変更できたので、非常に助かりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*