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


30

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

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

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

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

请推荐一些可单击一次即可处理多个图像的软件。

Answers:


31

当您已经有了GUI解决方案时,我想我会提到,还有几种方法可以在命令行上更改EXIF数据。exiftool和有用的两个工具jhead可以通过以下命令安装:

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

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

日期和时间平移选项以及可以使用的格式非常广泛,如本实用pdf中所述。与jhead一样,您可以决定更改时间和日期,或仅更改日期。本示例同时更改日期和时间:

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

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

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

即使您是在2012年拍摄的,如果您的照片突然被标记为2009,则移位功能也非常有用。请确保在等号(如-AllDates-=-AllDates+=)之前使用加号或减号,具体取决于分配所需的时间索引时要达到的目标,否则生成的EXIF数据将与预期不符。

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

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

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


1
+1,杰出答案Mik。这比仅使用Shotwell更加灵活。
汤姆·布鲁斯曼

我偶然发现了这个答案,因为我一直在研究如何将EXIF数据添加到最初没有EXIF数据的jpg图像中。为此,我发现我需要jhead -mkexif -ts<date>
2014年

jhead很好用。
哈拉尔德2015年

1.请注意,不幸的是,EXIF标准不包含时区信息。2.您可以使用花括号扩展名代替星号:DSCN{120..345}.jpg。3.要使用其他文件作为参考来更改文件时间戳记touch -r ~/path/reference.jpg *.jpg
Pablo A

21

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

肖特韦尔菜单

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

时间日期调整

如果所有照片的折光幅度相同,则可以一次性完成所有照片。如果您使用了多个摄像头,并且它们的关闭量不同,则必须将它们分开并分别进行每批处理。

Shotwell的帮助页面介绍了此内容


这是使用日期和时间执行此操作的正确方法。非常感谢您的分享。
Geppettvs D'Constanzo

Shotwell顶部菜单选项未在此处显示。这是Xenial Xerus的错误吗?
莱昂纳多·卡斯特罗

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数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.