回答:
既にGUIソリューションがあるので、コマンドラインでEXIFデータを変更する方法はいくつかあると思います。次の2つの便利なツールがexiftool
ありますjhead
。これらは、このコマンドでインストールできます。
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
たとえば、を指定した場合、特定のカメラで撮影した写真に対しても1つだけ実行でき-model "D70"
ますが、そのオプションは処理の最初に来る必要があり、「Nikon D70」ではなく「D70」、「S100」のようなものでなければなりません「。写真から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
シフト機能は、あなたに起こっているように、あなたの写真は、すべての突然2009をマークされている、あれば必ず(のように等号の前にプラスまたはマイナス記号を使用し、彼らは2012年メイクで撮影されたにも関わらず、非常に便利です-AllDates-=
または-AllDates+=
、)によって、必要な時間インデックスを割り当てるときに達成したいこと、そうでない場合、結果のEXIFデータが期待どおりになりません。
exiftool
EXIFデータを編集する前にオリジナルのバックアップを作成し、ファイル名の最後にオリジナルを追加します。
exiftool
jhead
JPEGでのみ機能するよりも多くの画像タイプをサポートします。
詳細については、を参照してくださいman exiftool
。
jhead -mkexif -ts<date>
。
DSCN{120..345}.jpg
。3.参照用途としてotherを使用してファイルのタイムスタンプを変更するにはtouch -r ~/path/reference.jpg *.jpg
Shotwellでは、日付と時刻の変更は簡単です。調整する写真を選択し、次のようなメニューに移動します。
写真/日付と時刻の調整を選択します。次のようなメニューが表示されます。
すべての写真が同じ量だけずれている場合は、一度にすべてを実行できます。複数のカメラを使用し、それらが異なる量でオフになっている場合、それらを分割し、各バッチを個別に実行する必要があります。
これを説明するShotwellのヘルプページはこちらです。
この質問には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データが表示されます。