我在一次活动中拍了 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小时。