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

昨天晚上我遇到了大问题。

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

现在点击的所有照片的日期都是2009年1月1日

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

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

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

 sudo apt-get install libimage-exiftool-perl jhead 

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

  1. 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”之类的而不是“尼康D70”。 查看图片中的exif读数以获得正确的型号。

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

    有关更多信息,请参阅man jhead

  2. exiftool

    如官方网站所述 ,该实用程序比jhead有更多选项,并且非常全面。 exiftool在开发过程中有一个图形前端 ,但目前处于早期阶段,但看起来很有前景。

    日期和时间转换选项以及可以使用的格式非常广泛,详见此有用的pdf 。 与jhead一样 ,您可以决定更改时间和日期,或仅更改日期。 此示例更改日期和时间:

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

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

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

    如果发生在您身上,即使它们是在2012年拍摄的,您的照片也会突然标记为2009年,这种变换function非常有用。请确保在等于之前使用加号或减号(如-AllDates-=-AllDates+= ),具体取决于您在分配所需时间索引时要实现的目标,或者生成的EXIF数据不符合预期。

    在编辑EXIF数据之前, Exiftool创建原始文件的备份

    它支持比jhead更多的图像类型。

    有关更多信息,请参阅man exiftool

Shotwell可以轻松更改日期和时间。 选择要调整的照片,然后转到菜单,如下所示:

Shotwell菜单

选择照片/调整日期和时间。 这会打开一个这样的菜单:

时间日期调整

如果所有照片都以相同的数量关闭,您可以一次性完成所有照片。 如果您使用了多台相机并且它们的数量不同,则必须将它们分开并分别进行每批操作。

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

这个问题要求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 -pa 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 -pa my-image.jpg因为它显示了所有三种forms的元数据。 离开-pa只会显示EXIF数据。