Exiftool 命令行操作图片元信息(Megadata)

47次阅读

共计 3037 个字符,预计需要花费 8 分钟才能阅读完成。

Exiftool 是命令行操作 exif 最强大的工具。
官方网址。
参考:图片 EXIF 信息查看与 Exiftool 使用参考:如何批量将图片文件名中的时间写入 EXIF 信息?知乎
安装:
# Mac 上安装
$ brew install exiftool

# 或 Linux 上安装
$ sudo apt-get install exiftool

# 查看图片全部 exif 信息
$ exiftool 图片位置

# 查看图片某个 tag 信息
$ exiftool -tag
语法
每种格式的图片都有自己不同的一堆 Tags,比如时间、日期、地理位置等,jpg 和 png 都很不一样。所以到官网参考每种图片的不同 tags,才能确定自己要怎么改这个信息。
ExifTool Tag Names
注意,引用 tag 时,要用小写。
基本语法是一样的:

设置某 tag 的值:-tag=VALUE

增减某 tag 值 (如果是数字的话):-tag+=VALUE 或 -tag-=VALUE

清空: -tag=

$ exiftool -artist=solomon
但是有一点一定要注意:每种 tag 所接受的值的格式是很严格的:

日期
时长

常用操作
$ exiftool photo.jpg #查看所有信息
$ exiftool -a -u -g1 photo.jpg #查看所有元信息,包括重复和未知标签,并按小组排列
$ exiftool -s -ImageSize -ExposureTime photo.jpg #查看图片尺寸
$ exiftool -common dir #查看 dir 目录文件信息(不仅仅是图片)
$ exiftool -l c.jpg d.jpg #从两个图像文件打印所有信息。
$ exiftool -l -canon c.jpg d.jpg #从两个图像文件打印标准的佳能信息。
更改创建和修改时间:
$ exiftool -gps:all=”” photo.jpg #有些相机会记录拍照时的 GPS 定位信息。如果你不希望别人看到使用该命令删除 gps 信息
$ exiftool -all=”” photo.jpg #删除所有信息
$ exiftool -all=”” –exif:all photo.jpg #删除 EXIF 以外的所有信息
写入标签:
$ exiftool -artist= 标签名称 photo.jpg #写入艺术家标签
$ exiftool -artist= 标签名称 a.jpg b.jpg c.jpg #写多个文件
$ exiftool -artist= 标签名称 /exiftoolTest #写在一个目录的所有文件 exiftoolTest 为文件夹
转移标签「<」(将某一个标签值赋予另一个标签):
# 将文件名(带日期的)设置到图片日期中(程序会自动识别日期格式)
$ exiftool “-DateTimeOriginal<filename” “2009-09-30 15-28-16.jpg”

# 将文件名设置为文件大小(带格式)
$ exiftool “-filename<%f_$imagesize.%e” IMG_0894.JPG
其它:
$ exiftool -Comment=’ 这是一个新的评论 ’dst.jpg
向 JPG 图片写入新评论(取代任何现有评论)。
$ exiftool -comment=” -o newdir -ext jpg
删除当前目录中所有 JPG 图像的评论,
将修改后的图像写入新目录。
$ exiftool -keywords=EXIF -keywords= 编辑器 dst.jpg
用两个新的关键字(“EXIF”和。)替换现有的关键字列表
“编辑”)。
$ exiftool -Keywords+= 单词 -o newfile.jpg src.jpg
将源图像复制到新文件,然后添加关键字(“单词”)
当前关键字列表。
$ exiftool -credit=xxx dir
从一个目录中的所有文件中删除信用信息,信用值是“xxx”。
$ exiftool -all=” dst.jpg
从图像中删除所有元信息。注意:你不应该
对 RAW 图像(DNG 除外)进行处理,因为它是专有的 RAW 图像
格式通常包含制造注释中的信息
转换图像所必需的。
$ exiftool -all=” -comment =’ 寂寞 ’ dst.jpg
删除图像中的所有元信息并添加评论
(注意顺序很重要:“-comment =’lonely’-all =”
也会删除新评论。)
$ exiftool -all = –jfif:全部 dst.jpg
从图像中删除除 JFIF 组以外的所有元信息。
$ exiftool -Photoshop:全部 = dst.jpg
从图像中删除 Photoshop 元信息(注意
Photoshop 信息还包括 IPTC)。
$ exiftool -r -XMP-crss:all = DIR
递归删除 a 中的图像中的所有 XMP-crss 信息
目录。
$ exiftool’-ThumbnailImage <= thumb.jpg’dst.jpg
从指定的文件中设置缩略图(注意:引号是
以防止外壳重定向)。
$ exiftool’-JpgFromRaw <=%d%f_JFR.JPG’-ext NEF -r。
递归地写入以“_JFR.JPG”结尾的文件名的 JPEG 图像
添加到扩展名为“.NEF”的类似文件的 JpgFromRaw 标记中
当前目录。(这是“-JpgFromRaw”的倒数
上面的“READING EXAMPLES”部分的命令)。
$ exiftool -DateTimeOriginal – =’0:0:0 1:30:0’dir
调整目录“dir”中所有图像的原始日期 / 时间
减去 1 小时 30 分钟。(这相当于
“-DateTimeOriginal- = 1.5”。请参阅 Image :: ExifTool :: Shift.pl
细节。)
$ exiftool -createdate + = 3 -modifydate + = 3 a.jpg b.jpg
向两个 CreateDate 和 ModifyDate 时间戳添加 3 个小时
图片。
$ exiftool -AllDates + = 1:30 -if’$ make eq“Canon”’dir
移动 DateTimeOriginal,CreateDate 和 ModifyDate 的值
将所有佳能影像转换 1 小时 30 分钟
目录。(AllDates 标签作为这些的快捷方式提供
三个标签,允许他们通过一个标签访问。)
$ exiftool -xmp:city = Kingston image1.jpg image2.nef
将标签写入两个图像的 XMP 组。(没有“xmp:”
自从“City”存在以后,该标签将被写入 IPTC 组
在这两种情况下,IPTC 默认是首选。)
$ exiftool -LightSource – =’ 未知(0)’dst.tiff
只有在值为 0 时才删除“LightSource”标签。
$ exiftool -whitebalance- = auto -WhiteBalance = tung dst.jpg
只有之前为“自动”时,才将“WhiteBalance”设置为“Tungsten”。
$ exiftool -comment- = -comment =’ 新评论 ’a.jpg
只有当图片还没有时才写新评论。
$ exiftool -o%d%f.xmp 目录
为“dir”中的所有图像创建 XMP 元信息数据文件。
$ exiftool -o test.xmp -owner = Phil -title =’XMP File’
仅从命令中定义的标签创建 XMP 数据文件
线。
常用标签名 (Tags)
因为编辑 exif 信息需要知道图片里内置的各种标签名才能修改,所以下面为标签名参考。
JPEG

Comment: 描述,无字数限制。
PNG

Comment: 描述,无字数限制。

Description:描述,无字数限制。

正文完
 0