在上一篇文章中,我提到了ExifTool这款查看编译元数据的工具,实际上这款工具功能及其丰富,有必要写一篇教程来介绍它的使用方法。
EXIF是什么
当你用单反相机或手机拍摄完一张照片,相机会生成一个如JPEG格式的电子文件保存起来,这个jpeg图片它不只保存了你拍摄的画面,还保存很多其他的一些信息如:相机品牌、手机型号、闪光灯、快门速度、光圈大小、感光度及GPS坐标等,这些信息就是EXIF信息。每台数码相机都支持Exif,能够将拍摄时的很多参数通过这种格式(Exif)记录到照片中,这些照片中的额外数据就叫元数据。
ExifTool是什么
ExifTool是一款免费开源的图像信息查看工具,一个命令行应用程序。可用于读写和编辑图像(主要)、音视频和PDF等文件的元数据(metadata)。元数据是由一系列参数(下文为了与命令行参数做区别将称为标签)组成,如快门速度、光圈、白平衡、相机品牌和型号、镜头、焦距等等。而ExifTool可以帮助用户读取和处理这些数据, 支持许多不同的元数据格式,包括 EXIF,GPS,IPTC,XMP,JFIF,GeoTIFF,ICC 配置文件等等。支持多种输出格式设置选项(包括制表符分隔,HTML,XML 和 JSON),还可以多语言输出(cs,de,en,en-ca,en-gb,es,fi,fr,it,ja,ko,nl,pl,ru,sv,tr,zh-cn 或 zh-tw)。可以读取和写入许多数码相机的制造商说明。可谓是功能非常的强大
为什么使用Exiftool
它显示的元数据标签比其他任何工具都要多,对图片EXIF信息解析支持是最好的。
它允许编辑几乎所有元数据标签
使用非常安全,会定期更新并提供最好的服务支持,bug能很快修复。
它能确保你上传图片的安全,避免Exif数据的隐私问题。
Exiftool支持的标签和文件类型
标签:参见官网(https://exiftool.org/TagNames/index.html)
文件类型:参见官网(https://exiftool.org/#supported)
安装:
官网安装教程(含Windows、Linux、MaxOS):https://exiftool.org/install.html
这里以Windows为例
从ExifTool主页下载Windows可执行文件,您下载的文件应命名为“ ”)XX代表子版本,最新的为12.18.
解压缩到你想要存放的位置,最好重命名为exiftool.exe。
现在,您可以通过在命令提示符下键入“exiftool ”来运行exiftool 。(要进入命令提示符,请从Windows“开始”菜单中选择“运行...”,然后键入“ ”并按回车键。)
软件功能
1、从 GPS 跟踪日志文件对图像进行地理标记(具有时间漂移校正功能!)
2、从地理标记的图像生成跟踪日志。
3、移位日期/时间值以修复图像中的时间戳。
4、重命名文件并按目录组织(按日期或任何其他元信息)
5、从 RAW 文件中提取缩略图,预览图像和大JPEG图像。
6、在文件(甚至不同格式的文件)之间复制元信息。
7、读/写结构化的 XMP 信息。
8、单独,成组或完全删除元信息。
9、处理整个目录树。
10、为每个图像文件创建文本输出文件。
11、创建仅二进制格式的元数据(MIE,EXV)文件以用于元数据备份。
12、写入时自动备份原始图像。
13、将输出分组。
14、根据任何元信息的值有条件地处理文件。
15、能够添加自定义用户定义标签。
16、支持 MWG(元数据工作组)建议。
17、识别数千种不同的标签。
18、经过数以千计的不同相机型号的图像测试。
19、高级详细和基于 HTML 的十六进制转储输出。
ExifTool命令格式
1、读取:exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
2、写入:exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
3、复制:exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
4、其他:exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x]
常用命令
1、几个常用的参数:
-r:递归处理子目录
-overwrite_original:直接覆盖原始文件
-restore_original:恢复备份
-delete_original:删除备份
2、读取文件a.jpg的所有元数据
exiftool a.jpg
3、写入标签artist、值到文件a.jpg(如果artist已存在将更新其值),即艺术家=张三
exiftool -artist=zhangsan a.jpg
exiftool -artist=zhangsa a.jpg b.jpg c.jpg(同时写入多个文件)
exiftool -artist=zhangsa D:/images(写入目录中所有文件)
exiftool -artist=zhangsa D:/images -r?(递归处理子目录)
exiftool -artist="rmnof" -copyright="rmnof.com" a.jpg?(同时写入多个标签)
4、如果相机记录了GPS信息,可以使用下面的命令删除
exiftool -gps:all=photo.jpg
5、打印某照片的尺寸和曝光时间
exiftool -s -ImageSize -ExposureTime a.jpg
6、递归扫描某目录所有照片,将共有的元数据写入相同文件名的txt文件中
exiftool -r -w .txt -common DIR
7、生成image.raw的缩略图thumbnail.jpg
exiftool -b -ThumbnailImage image.raw >thumbnail.jpg
8、从a.jpg提取完整的xmp数据记录
exiftool -xmp -b a.jpg>out.xmp
9、递归删除某目录下所有文件的全部元数据
exiftool -all=-r DIR
其他平台或者全部命令请查看官网(https://exiftool.org/examples.html)。、
基于ExifTool引擎的程序
如果硬要说确定,那就是ExifTool是一个“命令行”工具,没有图形用户界面(GUI),因此必须通过在“命令提示符”窗口中键入命令来完成所有工作。这种方法为ExifTool提供了极大的灵活性,但是对某些用户来说可能不太习惯。
所幸有很多基于ExifTool引擎的免费实用工具,通常是以图形界面来实现ExifTool需要复杂命令才能完成的操作。选用合适的程序可以有效提高图片处理效率。例如Windows下ExifToolGUI程序(https://exiftool.org/gui/),其他程序请参考官网:https://exiftool.org/#related