此处内容需要评论回复后(审核通过)方可阅读。
## Exiftool
一个强大的元数据查看修改工具,例如可以查看图片的拍摄信息

pkg install exiftool
exiftool [图片] # 需要查看的图片

ExifTool命令格式 

  • 读取:exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
  • 写入:exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
  • 复制:exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
  • 其他:exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]

    ExifTool参数一览

    标签选项

    -TAG or --TAG                    提取或排除指定的标签
    -TAG[+-^]=[VALUE]                向标签写入新值
    -TAG[+-]<=DATFILE                从数据文件读取标签写入文件
    -TAG[+-]<SRCTAG                  复制标签值(见-tagsFromFile)
    
    -tagsFromFile SRCFILE            复制某文件的标签值
    -x TAG      (-exclude)           排出指定标签
    

    输入输出文本格式

    -args       (-argFormat)         将元数据格式化为ExifTool参数
    -b          (-binary)            以二进制输出元数据
    -c FMT      (-coordFormat)       设置GPS坐标格式
    -charset [[TYPE=]CHARSET]        指定字符编码
    -csv[[+]=CSVFILE]                以CSV格式导出/导入标签
    -d FMT      (-dateFormat)        设置日期/时间的格式
    -D          (-decimal)           以十进制显示标签ID号
    -E,-ex,-ec  (-escape(HTML|XML|C))为HTML,XML或C的转义标记值
    -f          (-forcePrint)        强制打印所有指定的标签
    -g[NUM...]  (-groupHeadings)     按标签组输出
    -G[NUM...]  (-groupNames)        打印每个标签的组名
    -h          (-htmlFormat)        输出为HTML格式
    -H          (-hex)               以十六进制显示标签ID号
    -htmlDump[OFFSET]                生成HTML格式的二进制转储
    -j[[+]=JSONFILE] (-json)         以JSON格式导出/导入标签
    -l          (-long)              使用长2行输出格式(标签、值各一行)
    -L          (-latin)             使用Windows Latin1编码
    -lang [LANG]                     设定当前语言
    -listItem INDEX                  从列表中提取特定项目
    -n          (--printConv)        不转换,直接打印
    -p FMTFILE  (-printFormat)       以指定格式输出
    -php                             将标签导出为PHP数组
    -s[NUM]     (-short)             简短输出
    -S          (-veryShort)         非常简短输出
    -sep STR    (-separator)         设置列表项的分隔符字符串
    -sort                            按字母顺序对输出进行排序
    -struct                          启用结构化信息的输出
    -t          (-tab)               以制表符分隔的列表格式输出
    -T          (-table)             以表格格式输出
    -v[NUM]     (-verbose)           打印详细消息
    -w[+|!] EXT (-textOut)           写入(或覆盖!)输出的文本文件
    -W[+|!] FMT (-tagOut)            为每个标签写入输出文本文件
    -Wext EXT   (-tagOutExt)         用-W指定要写入的文件类型
    -X          (-xmlFormat)         使用RDF/XML输出格式
    

    执行选项

    -a          (-duplicates)        允许提取重复的标签
    -e          (--composite)        不生成复合标签
    -ee         (-extractEmbedded)   从嵌入式文件中提取信息
    -ext[+] EXT (-extension)         只处理具有指定扩展名的文件
    -F[OFFSET]  (-fixBase)           修复制造商Makernotes偏移
    -fast[NUM]                       提取元数据时提高速度
    -fileOrder[NUM] [-]TAG           设置文件处理顺序
    -i DIR      (-ignore)            忽略指定的目录名称
    -if[NUM] EXPR                    按条件处理文件
    -m          (-ignoreMinorErrors) 忽略小错误和警告
    -o OUTFILE  (-out)               设置输出文件或目录名称
    -overwrite_original              重命名tmp文件覆盖原始文件
    -overwrite_original_in_place     通过复制tmp文件覆盖原始文件
    -P          (-preserve)          保留文件修改日期/时间
    -password PASSWD                 处理受保护文件的密码
    -progress[:[TITLE]]              显示文件进度计数
    -q          (-quiet)             -q不显示正常消息,-q-q不显示警告
    -r[.]       (-recurse)           递归处理子目录
    -scanForXMP                      扫描所有文件以获取XMP
    -u          (-unknown)           提取未知标签
    -U          (-unknown2)          提取未知的二进制标签
    -wm MODE    (-writeMode)         设置用于写入/创建标签的模式
    -z          (-zip)               读/写压缩信息
    

    其他选项

    -@ ARGFILE                       从文件中读取命令行参数
    -k          (-pause)             结束前先暂停
    -list[w|f|wf|g[NUM]|d|x]         列出各种exiftool功能
    -ver                             打印版本号
    --                               结束选项
    

    特殊功能

    -geotag TRKFILE                  从指定的GPS日志对图像进行地理标记
    -globalTimeShift SHIFT           移位所有格式化的日期/时间值
    -use MODULE                      从插件模块添加功能
    

    实用工具

    -delete_original[!]              删除"_original"备份
    -restore_original                从"_original"备份还原
    

    高级选项

    -api OPT[[^]=[VAL]]              设置ExifTool API选项
    -common_args                     定义通用参数
    -config CFGFILE                  指定配置文件名
    -echo[NUM] TEXT                  将文本回显到stdout或stderr
    -efile[NUM][!] ERRFILE           保存错误的文件名
    -execute[NUM]                    一行执行多个命令
    -srcfile FMT                     处理其他文件来源
    -stay_open FLAG                  继续阅读-@ argfile,即使在EOF之后
    -userParam PARAM[[^]=[VAL]]      设置用户参数 (API UserParam opt)
    

ExifTool使用示例

几个常用的参数
-r:递归处理子目录
-overwrite_original:不备份_original文件,直接覆盖
-restore_original:恢复备份
-delete_original:删除备份
读取文件a.jpg的所有元数据
exiftool a.jpg

写入标签artist、值rmnof到文件a.jpg(如果artist已存在将更新其值)
exiftool -artist=rmnof a.jpg
exiftool -artist=rmnof a.jpg b.jpg c.jpg  (同时写入多个文件)
exiftool -artist=rmnof D:/images    (写入目录中所有文件)
exiftool -artist=rmnof D:/images -r   (递归处理子目录)
exiftool -artist="rmnof" -copyright="rmnof.com" a.jpg (同时写入多个标签)

将创建时间、光圈、快门速度和ISO四项以列表形式保存为out.txt
exiftool -T -createdate -aperture -shutterspeed -iso DIR > out.txt

打印某照片的尺寸和曝光时间
exiftool -s -ImageSize -ExposureTime a.jpg

递归扫描某目录所有照片,将共有的元数据写入相同文件名的txt文件中
exiftool -r -w .txt -common DIR

生成image.raw的缩略图thumbnail.jpg
exiftool -b -ThumbnailImage image.raw > thumbnail.jpg

从a.jpg提取完整的xmp数据记录
exiftool -xmp -b a.jpg> out.xmp

递归删除某目录下所有文件的全部元数据
exiftool -all= -r DIR

Last modification:May 14, 2021
如果觉得我的文章对你有用,请随意赞赏