当前位置: 首页>>技术问答>>正文


如何获取/编辑多个图像的EXIF meta-data?

, , , ,

问题描述

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

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

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

我想更改多个图像的日期和时间(以及其他EXIF图像meta-data)。

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

最佳解决思路

由于您已经有了一个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

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

exiftool

the official site所述,该实用程序具有比jhead更多的选项,并且非常全面。有一个图形frontend for exiftool正在开发中,但它目前处于早期阶段,但看起来很有希望。

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

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

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

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

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

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

exiftool支持的图像类型多于jhead,后者仅适用于JPEG。

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

次佳解决思路

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

software-recommendation,images,media,metadata,ubuntu

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

software-recommendation,images,media,metadata,ubuntu

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

Shotwell的帮助页面解释了这个is here

第三种解决思路

这个问题要求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数据。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6963.html,未经允许,请勿转载。