我在一次活動中拍了 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
我希望改變這一切。
答案1
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
然而(根據菲爾哈維的說法),“-globalTimeShift
僅當您想要將移位的日期/時間值複製到另一個標籤時才需要該選項。”,例如-geo
標籤。看:
https://exiftool.org/forum/index.php?topic=9224.msg47655#msg47655
https://exiftool.org/forum/index.php?topic=6330.msg31354#msg31354
https://exiftool.org/exiftool_pod.html
https://exiftool.org/
答案2
您可以輸入:
exiftool -EXIF:CreateDate+=24 img.jpg
要加24小時。