如何获取/编辑多张图像的 EXIF 元数据?

如何获取/编辑多张图像的 EXIF 元数据?

我昨晚遇到了大问题。

我拿出我的旧数码相机,并开始使用它,没有设置当前日期和时间。

现在拍摄的所有照片的拍摄日期均为 2009 年 1 月 1 日

我想更改多张图像的日期和时间(以及其他 EXIF 图像元数据)。

请推荐一些可以单击/处理多幅图像的软件。

答案1

由于您已经有了 GUI 解决方案,我想我会提到,在命令行上还有几种更改 EXIF 数据的方法;两个有用的工具是exiftooljhead,可以使用以下命令安装:

sudo apt-get install libimage-exiftool-perl jhead

使用这两种工具,您可以同时操作多个文件,但您可能需要在开始操作 exif 数据之前备份文件。

jhead

要“单击”更改多个文件的时间和日期 EXIF 数据,您可以打开终端并对cd包含图片的文件夹执行以下任一操作:

jhead -ts2012:10:29-10:28:03 *.jpg

-ts开关允许您指定所需的日期和时间并将其一次性写入 exif 标头:此处指定的格式为YYYY:MM:DD-HH:MM:SS

如果您只想更改日期而不指定时间,则可以用:

jhead -ds2012:10:29 *.jpg

如果您指定了,您也可以只对使用特定相机拍摄的一些照片执行此操作,例如,-model "D70"但该选项必须在处理过程中排在第一位,并且必须是“D70”、“S100”而不是“Nikon D70”。查看照片中的 exif 读数以获取正确的型号。

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

有关详细信息,请参阅For more information, seeman jhead

exiftool

此实用程序具有比杰黑德并且非常全面,如官方网站. 有一个图形exiftool 的前端正在开发中,但目前还处于早期阶段,但看起来很有前景。

日期和时间转换选项以及可以使用的格式非常广泛,如详细说明这是有用的 pdf. 与杰黑德,您可以决定更改时间和日期,或仅更改日期。此示例同时更改日期和时间:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

上面的例子只是为图片的日期和时间设置了一个特定的值;如果您只想将它​​们全部按特定的时间索引移动,例如向前三年,您可以使用:

exiftool -AllDates+="3:0:0 0" *.jpg

如果您遇到过这种情况,即您的照片突然全部被标记为 2009 年,尽管它们是在 2012 年拍摄的,那么转换功能会非常有用。请确保在等号前使用加号或减号(如-AllDates-=-AllDates+=),具体取决于您在分配所需时间索引时想要实现的目标,否则生成的 EXIF 数据将不符合预期。

exiftool将要在编辑 EXIF 数据之前创建原始数据的备份添加原来的在文件名的末尾。

exiftooljhead支持比仅适用于 JPEG更多的图像类型。

有关详细信息,请参阅For more information, seeman exiftool

答案2

在 Shotwell 中更改日期和时间很容易。选择要调整的照片,然后转到如下菜单:

肖特韦尔菜单

选择照片/调整日期和时间。这将调出如下菜单:

时间日期调整

如果所有照片的误差都相同,则可以一次性处理所有照片。如果您使用多台相机,并且每张照片的误差都不同,则必须将它们分开处理,然后分别处理每一批照片。

Shotwell 的帮助页面解释了这一点在这儿

答案3

这个问题要求提供 EXIF,但图像元数据有至少可以附加到图像的三种标准:EXIF、XMP 和 IPTC。许多照片程序可以写入所有这些格式,但不是全部,因此检查所有格式很重要。

我发现这exif是一个很好的工具,但是那exiv2更好。比较exif

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

exiv2

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

这里最大的区别是 XMP 和 IPTC 中的关键字根本不在 EXIF 中,所以如果我只在那里查看,我会认为它没有关键字。

我给出该命令是exiv2 -p a my-image.jpg因为它可以显示所有三种形式的元数据。省略则-p a只会显示 EXIF 数据。

相关内容