【问题标题】:Editing Exif Data using filename pictures使用文件名图片编辑 Exif 数据
【发布时间】:2014-01-05 00:55:49
【问题描述】:

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

文件名是这样的:IMG_20130326_232320.jpg

感谢您的关注!

【问题讨论】:

    标签: image jpeg exif


    【解决方案1】:

    当然,您可以在 *nix 系统上使用 exiv2 实用程序和一些 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,但您可以通过一些解析来做几乎任何您想做的事情。

    EXIF 的替代方案(可能更好,取决于您的需要)是使用 IPTC 格式和相应的 IPTC.DateIPTC.Time 字段,这需要特定的数据格式,但更容易被照片管理程序理解。

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

    exiv2 工具也可用于 Windows,因此,如果您了解一些批处理脚本,在其中实施它应该不会太难。

    【讨论】:

    • 太好了,谢谢!你知道exiv2是否也可以修改mp4视频吗?
    • 据我所知,没有。有关于视频元数据的a ticket,但我不明白它到底发生了什么。你可以试试ExifTool,它不能添加新的元数据,但可以编辑现有的。
    猜你喜欢
    • 2016-08-20
    • 2020-11-19
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2020-01-13
    • 2021-03-31
    相关资源
    最近更新 更多