如何根据 shotwell 标题重命名照片?

如何根据 shotwell 标题重命名照片?

我最近在 Shotwell 中为大约 200 张照片赋予了数字标题,以描述它们的序列——001、002 等。但我希望文件名中的序列也相同,这样当我在 Nautilus 中打开文件夹时,照片会按顺序列出。我认为 Shotwell 将标题保存在 exif 数据的某个地方。事实上,我最终使用 Gnome 图像查看器在 XMP Other 和 photoshop:Headline 下找到了它。我想要的是一种读取这些 Shotwell 标题并将其用作文件名的方法。如果我知道如何访问元数据,我可能可以用 Python 来做到这一点。

答案1

由于没有其他答案显示如何要真正重命名照片并添加标题Shotwell,这里有一个使用 bash 编写脚本的快速方法,正如您在评论中所说,您已经有了 python 替代方案。可能还有其他方法可以做到这一点,但这种方法可能对某些人有用。

由于您已经为图片添加了标题Shotwell并将其导出,并且找到了存储Shotwell添加的元数据的位置,因此编写脚本相对简单。

请安装libimage-exiftool-perl,因为它对于脚本来说是必需的。

  1. 如果您使用exiftool -a G1 -s pic.jpg,您可以看到图片中嵌入的所有元数据类型和标签,以及Shotwell元数据的位置:
[XMP-photoshop] Headline                        : 002
[XMP-dc]        Title                           : 002
[IPTC]          Caption-Abstract                : 002
[IPTC]          Headline                        : 002
[IPTC]          OriginatingProgram              : Shotwell
[IPTC]          ProgramVersion                  : 0.13.1+trunk
  1. 现在,我们的脚本中XMP-photoshop可以使用或 IPTC 标签exiftool来显示元数据(然后使用该结果值重命名文件)。

输入exiftool -IPTC:headline pic.jpg结果

Headline                        : 002

并且可以对其进行解析awk并将其作为变量反馈来重命名文件:

mv -i "$i" "$(exiftool -IPTC:headline -s3 "$i").jpg"
  1. 最终的脚本如下:
#!/bin/bash

for i in *.jpg; do
  mv -i "$i" "$(exiftool -IPTC:headline -s3 "$i").jpg"
done

因此,现在所有文件都已根据其Shotwell标题重命名,正如我们在使用以下命令检查文件时看到的那样exiftool -a -G1 -s pic.jpg

ExifTool Version Number         : 9.12
File Name                       : 002.jpg

笔记:

  • exiftool 的存储库版本很好,但是相当旧,因此如果您需要支持各种新功能和错误修复,请参阅官方网站有关如何构建和安装较新版本的信息。

  • 脚本保留所有元数据不变,因为只有实际文件本身被重命名。

  • 显然,只有当您的图片中嵌入使用 Shotwell 创建的标题时,该脚本才会起作用,但它也可以用于其他用途。

有关更多常规信息,请参阅man exiftoolUbuntu 在线手册页

答案2

我做了一个apt-cache search exif,并发现(在其他包中):

exiv2 - EXIF/IPTC metadata manipulation tool  
bins - Generate static HTML photo albums using XML and EXIF tags  
exif - command-line utility to show EXIF information in JPEG files  
exifprobe - Read metadata from digital pictures  
exiftags - utility to read Exif tags from a digital camera JPEG file  
jigl - Generates a static html photo gallery from one or more directories of images  
libexif-ruby1.9.1 - EXIF tag parsing Library for ruby1.9.1  
libimage-exif-perl - Perl module to extract EXIF information from image files  
libimage-exiftool-perl - Library and program to read and write meta information in multimedia files  
libimage-info-perl - allows extraction of meta information from image files  
metacam - extract EXIF information from digital camera files  
pyrenamer - mass file renamer written in PyGTK  
python-exif - Python library to extract EXIF data from tiff and jpeg files  
renrot - Rename and rotate files according to EXIF tags  

因此尝试芘尼美拉。如果你不能让它做你喜欢的事情,你可以用python-exif

相关内容