如何批量更改 JPEG 照片文件的 exif 數據(相機中設置的日期錯誤)?
我在一次活動中拍攝了 300 張照片。後來我注意到相機中的日期設置不正確——休息一天。文件中有很多 EXIF 數據,而不僅僅是創建日期。
如何僅更改所有相關 EXIF 欄位中包含的日期以更正日期(準確減去一天)?
此修改不應更改其他數據!
也許對於每個文件,我可以轉儲數據(
exiftool
或exiv2
?),然後修改轉儲(使用awk
?),然後從修改後的轉儲中替換 EXIF 數據?但是怎麼做?編輯:
每個文件有很多數據:
# exiftool IMG_9040.JPG | wc 289 2218 13996
很多是日期:
# exiftool IMG_9040.JPG | grep 2021 | grep -v File Modify Date : 2021:11:02 17:06:58 Date/Time Original : 2021:11:02 17:06:58 Create Date : 2021:11:02 17:06:58 Create Date : 2021:11:02 17:06:58.24+01:00 Date/Time Original : 2021:11:02 17:06:58.24+01:00 Modify Date : 2021:11:02 17:06:58.24+01:00
我希望改變所有這些。
Exiftool 有一個
-alldates
參數:exiftool -alldates-=24 -filemodifydate-=24 -filecreatedate-=24 *.jpg
根據此論壇評論(Phil Harvey),上面的程式碼可以減少 24 小時:
https://exiftool.org/forum/index.php?topic=6330.msg31354#msg31354
您可以將上述程式碼與
-out
文件規範結合起來,例如-out ./newJPG.jpg
或(在新目錄中),與-out ./newdir/newJPG.jpg
. 規範在-out
呼叫 後直接插入exiftool
。您還可以嘗試添加到
-out
文件規範(在進行備份之後!),選項-overwrite_original
OR-overwrite_original_in_place
,在呼叫之後直接插入exiftool
. 詳情請參閱exiftool --help
。請注意,這篇文章的早期版本建議使用該
-globalTimeShift
參數,如下所示:exiftool -globalTimeShift -24 -time:all *.jpg
但是(根據 Phil Harvey 的說法),“
-globalTimeShift
僅當您想要將轉換的日期/時間值複製到另一個標籤時才需要該選項。” ,例如-geo
標籤。看:https://exiftool.org/forum/index.php?topic=9224.msg47655#msg47655
https://exiftool.org/forum/index.php?topic=6330.msg31354#msg31354