如何批量更改JPEG照片文件的exif数据(相机中设置的日期错误)?

如何批量更改JPEG照片文件的exif数据(相机中设置的日期错误)?

我在一次活动中拍了 300 张照片。后来我发现相机中的日期设置不正确——休息了一天。文件中有大量 EXIF 数据,而不仅仅是创建日期。

如何仅更改所有相关 EXIF 字段中包含的日期以更正日期(正好减去一天)?

此修改不应更改其他数据!

也许对于每个文件,我可以转储数据(exiftoolexiv2?),然后修改转储(用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_originalOR -overwrite_original_in_place,直接插入到 的调用之后exiftoolexiftool --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小时。

相关内容