如何使用 exiftool 修复图像的时区

如何使用 exiftool 修复图像的时区

我收到了一位摄影师发来的一些照片。当我使用外置工具我发现摄影师相机的时区不正确。

Create Date                     : 2024:04:21 05:40:41-05:00
Date/Time Original              : 2024:04:21 05:40:41-05:00
Modify Date                     : 2024:04:21 13:08:27+07:00

Date/Time Created               : 2024:04:21 05:40:41-05:00
Digital Creation Date/Time      : 2024:04:21 05:40:41-05:00

正确的时区是 UTC+7:00(印度支那时间 (ICT)),但几个 exif 字段错误地包含-05:00

日期和时间都是正确的。例如,创建日期应该是2024:04:21 05:40:41印度支那时间 UTC+7:00。(我认为修改日期是摄影师使用照片编辑软件编辑照片的时间)。

如何使用 exiftool 来更正具有的字段的时区-5:00

另外,我想设置文件创建和修改日期以匹配 exif 创建日期。

以下是更完整的 exiftool 输出,希望它有帮助:

$ exiftool -time:all -G1 -a -s DSC00907.jpg                  
[System]        FileModifyDate                  : 2024:04:21 05:40:41+07:00
[System]        FileAccessDate                  : 2024:04:24 19:15:59+07:00
[System]        FileInodeChangeDate             : 2024:04:24 19:15:59+07:00
[IFD0]          ModifyDate                      : 2024:04:21 13:08:27
[ExifIFD]       DateTimeOriginal                : 2024:04:21 05:40:41
[ExifIFD]       CreateDate                      : 2024:04:21 05:40:41
[ExifIFD]       OffsetTime                      : +07:00
[ExifIFD]       OffsetTimeOriginal              : -05:00
[ExifIFD]       OffsetTimeDigitized             : -05:00
[XMP-xmp]       ModifyDate                      : 2024:04:21 13:08:27+07:00
[XMP-xmp]       CreateDate                      : 2024:04:21 05:40:41-05:00
[XMP-xmp]       MetadataDate                    : 2024:04:21 13:08:27+07:00
[XMP-photoshop] DateCreated                     : 2024:04:21 05:40:41-05:00
[XMP-xmpMM]     HistoryWhen                     : 2024:04:21 13:08:27+07:00
[IPTC]          DateCreated                     : 2024:04:21
[IPTC]          TimeCreated                     : 05:40:41-05:00
[IPTC]          DigitalCreationDate             : 2024:04:21
[IPTC]          DigitalCreationTime             : 05:40:41-05:00
[ICC-header]    ProfileDateTime                 : 1998:02:09 06:49:00
[Composite]     SubSecCreateDate                : 2024:04:21 05:40:41-05:00
[Composite]     SubSecDateTimeOriginal          : 2024:04:21 05:40:41-05:00
[Composite]     SubSecModifyDate                : 2024:04:21 13:08:27+07:00
[Composite]     DateTimeCreated                 : 2024:04:21 05:40:41-05:00
[Composite]     DigitalCreationDateTime         : 2024:04:21 05:40:41-05:00

答案1

在上面的输出中,您可以完全忽略ProfileDateTimeMetadataDateHistoryWhen。第一个仅适用于 ICC_Profile 颜色数据,不应更改。另外两个是工作流标签,永远不应用来标记图像的日期。每当文件被修改时,这些标签都会自动更新,但这取决于所使用的程序。例如,Adobe 程序将始终更新这些标签,但许多不太专业的程序则不会。

复合组标签是 exiftool 动态创建的标签,用于方便在标签/组/文件之间复制数据。它们实际上并不存在于文件中。它们可以被忽略,因为它们会在读取的底层标签被更正时发生变化。

IFD0:ModifyDate/ XMP-xmp:ModifyDate/标签可以忽略,因为它们与/标签ExifIFD:OffsetTime属于类似的类别。它们应该在修改图像时更改。如果缺少其他更重要的日期/时间标签,程序可能会使用这些标签来标记图像的日期,因此这取决于个人喜好。如果需要,可以按照以下概述的方式修复这些问题。MetadataDateHistoryWhen

真正重要的标签是剩余的OffsetTime标签,即DateTimeOriginalDateCreated和 两个CreateDate标签。以及程度较轻的DigitalCreationTime/TimeCreated标签。

要修复时区,exiftool 的换班时间能力。要从 移至-05:00+07:00需要移位 +12 小时。基本格式为

-TAG+=+12:00

生成的命令如下

exiftool -OffsetTimeOriginal+=+12:00 -OffsetTimeDigitized+=+12:00 -CreateDate+=+12:00 -DateCreated+=+12:00 -DigitalCreationTime+=+12:00 -TimeCreated+=+12:00 /path/to/files/

如果需要,可以使用相同的格式将修改类型标签添加到此命令。

此命令创建备份文件。添加-overwrite_original禁止创建备份文件。添加-r递归到子目录中。添加-P-preserve) 选项保存当前FileModifyDate

文件系统标签是唯一剩下的标签。这些标签以 UTC 格式存储,文件系统在提取时会将它们转换为本地时区。因此,它们将总是以当地时间显示,如果图像是在不同的时区拍摄的,则时间会有所不同。

Exiftool 无法编辑FileAccessDate/FileInodeChangeDate标签,并且没有理由尝试这样做,因为只要触碰所在的文件/目录,这些标签就会不断更新。

与上面的修改日期类似FileModifyDate,但适用于以任何方式修改文件时,而不仅仅是图像。

相关内容