web-dev-qa-db-ja.com

複数の画像のEXIFメタデータを取得/編集する方法は?

昨日の夜、大きな問題にぶつかりました。

古いデジタルカメラを取り出し、現在の日付と時刻を設定せずに使い始めました。

クリックされたすべての写真の日付は2009年1月1日です。

複数の画像の日付と時刻(およびその他のEXIF画像のメタデータ)を変更したい。

シングルクリック/ゴーで複数の画像を処理できるソフトウェアをお勧めします。

29
I-M-JM

すでにGUIソリューションがあるので、コマンドラインでEXIFデータを変更する方法はいくつかあると思います。 2つの便利なツールはexiftooljheadです。これらはこのコマンドでインストールできます。

Sudo apt-get install libimage-exiftool-Perl jhead

これらのツールの両方を使用すると、複数のファイルを一度に操作できますが、exifデータの操作を開始する前にファイルをバックアップすることをお勧めします。

jhead

多くのファイルの時刻と日付のEXIFデータを「シングルクリック」で変更するには、ターミナルを開いて、画像のあるフォルダーにcdを実行し、実行します。

jhead -ts2012:10:29-10:28:03 *.jpg

-tsスイッチを使用すると、必要な日時を指定し、それをexifヘッダーに一度にすべて書き込むことができます。ここで指定する形式はYYYY:MM:DD-HH:MM:SSです。

時刻を指定せずに日付を変更したい場合は、代わりに使用します:

jhead -ds2012:10:29 *.jpg

たとえば、-model "D70"を指定した場合、特定のカメラで撮影した写真の1つに対しても実行できますが、そのオプションは処理の最初に来る必要があり、「Nikon」ではなく「D70」、「S100」のようなものでなければなりませんD70 "。写真からexifの読み取り値を見て、正しいモデル番号を取得します。

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

詳細については、 man jhead を参照してください。

exiftool

このユーティリティには、jheadよりも多くのオプションがあり、 公式サイト で説明されているように、非常に包括的です。開発にはグラフィカルな exiftoolのフロントエンド がありますが、現時点では初期段階ですが、有望に見えます。

日付と時刻のシフトオプション、および使用できるフォーマットは、詳細に説明されているように非常に広範囲です この便利なpdfでjheadと同様に、時刻と日付を変更するか、日付のみを変更するかを決定できます。この例では、日付と時刻の両方を変更します。

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

上記の例では、写真の日付と時刻に特定の値を設定しています。 3年先など、特定の時間インデックスだけすべてをシフトしたい場合は、次を使用できます。

exiftool -AllDates+="3:0:0 0" *.jpg

シフト機能は、2012年に撮影されたものの、写真に突然2009年のマークが付けられた場合に非常に便利です。イコールの前にプラス記号またはマイナス記号を使用してください(-AllDates-=または-AllDates+=のように) 、必要な時間インデックスを割り当てるときに何を達成したいかによって異なります。そうしないと、結果のEXIFデータが期待どおりになりません。

exiftoolは、EXIFデータを編集する前に元のバックアップを作成します、末尾にoriginalを追加しますファイル名。

exiftoolは、JPEGでのみ機能するjheadよりも多くの画像タイプをサポートしています。

詳細については、 man exiftool を参照してください。

31
user76204

Shotwellでは、日付と時刻の変更は簡単です。調整する写真を選択し、次のようなメニューに移動します。

shotwell menu

写真/日付と時刻の調整を選択します。次のようなメニューが表示されます。

time date adjust

すべての写真が同じ量だけずれている場合は、一度にすべてを実行できます。複数のカメラを使用し、それらが異なる量でオフになっている場合、それらを分割し、各バッチを個別に実行する必要があります。

これを説明するShotwellのヘルプページ こちら

21
Tom Brossman

この質問はEXIFを要求しましたが、画像メタデータには少なくとも画像に添付できる3つの標準、EXIF、XMP、およびIPTCがあります。多くの写真プログラムはこれらのすべての形式に書き込みますが、すべてではないため、すべての形式を確認することが重要です。

exifは良いツールですが、exiv2の方が優れていることがわかりました。 exifの比較:

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

exiv2へ:

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

ここでの大きな違いは、XMPとIPTCのキーワードがまったくEXIFに含まれていないことです。したがって、私がそこを見ただけでは、キーワードがなかったと思います。

コマンドexiv2 -p a my-image.jpgを指定したのは、3つの形式のメタデータがすべて表示されるためです。 -p aを除外すると、EXIFデータのみが表示されます。

2
mlissner