使用文件名图片编辑Exif数据

时间:2014-01-04 16:24:20

标签: image jpeg exif

我拥有或多或少的一千张不包含Exif数据的图片。因为我会使用文件名恢复至少采用的日期,有没有办法以编程方式编辑这些字段?

文件名是这样的:IMG_20130326_232320.jpg

感谢您的关注!

1 个答案:

答案 0 :(得分:1)

当然,您可以使用exiv2实用程序和* nix系统上的一些shell脚本轻松地完成此操作。

假设您在包含该文件的目录中,您可以执行以下操作:

for pic in *.jpg ; do
  date = $( echo $pic | cut -d. -f1 | cut -d_ -f2-3 )
  exiv2 -M"set Exif.Image.DateTime Ascii $date" $pic
done

这将在图像的DateTime字段中存储“date_time”字符串。如您所见,Exif.Image.DateTime字段接受ASCII字符串,因此您可以执行任何您想要的处理以获得更好看的日期。在您的示例中,该字段将包含字符串20130326_232320,但您可以通过一些解析来完成您想要的任何操作。

A(可能更好,根据您的需要)替代EXIF正在使用IPTC格式以及相应的IPTC.DateIPTC.Time字段,这些字段需要特定的数据格式,但更容易通过照片理解管理计划。

exiv2手册页指定IPTC.Date格式为YYYY-MM-DD,而IPTC.Time格式为HH:MM:SS+|-HH:MM(本地小时加上与UTC的本地偏移量) 。您可以以相同的方式设置它们,但当然需要更多的文件名解析。

exiv2工具也适用于Windows,所以如果您知道一些批处理脚本,那么在那里实现它应该不会太难。