ExifTool问题:移除JPEG元数据时无法保留指定标签(快门速度等)
保留指定EXIF标签与ICC配置文件的ExifTool命令解决方案
我来帮你搞定这个问题——你之前的命令出问题,主要是因为-common预设标签集不包含快门速度、光圈这些关键曝光参数,而且ICC配置文件不属于常规EXIF标签,得单独指定保留。
正确的命令写法
直接用「清空所有元数据 + 精准复制需要保留的标签」的方式,就能完美保留你要的内容:
exiftool -all= -tagsfromfile @ -exif:Model -exif:ShutterSpeedValue -exif:ApertureValue -exif:ISO -exif:LensModel -exif:ColorSpace -icc_profile= -overwrite_original input.jpg
参数解释
-all=:彻底移除文件中所有元数据-tagsfromfile @:从原文件(@指代当前处理的文件)中复制后续指定的标签- 列出的
-exif:Model等参数:精准指定要保留的标签,覆盖相机型号、快门速度、光圈、ISO、镜头型号、色彩空间这些你需要的内容 -icc_profile=:专门保留嵌入的ICC配置文件(注意等号不能省略,否则会被清空)-overwrite_original:直接覆盖原文件,不需要自动生成_original备份(如果需要备份可以去掉这个参数)
为什么之前的命令失效?
-common预设的局限性:exiftool -common包含的是Make, Model, ExposureTime, FNumber, ISO等基础标签,但ShutterSpeedValue和ApertureValue(这两个是标准化的曝光参数,比ExposureTime/FNumber兼容性更好)并不在这个预设里,所以会被误删。- ICC配置文件的特殊性:ICC配置文件是独立于EXIF的文件块,
-all=会默认清空它,必须用-icc_profile=单独指定保留。
验证命令
执行完上面的命令后,用这条命令检查是否保留了所有需要的内容:
exiftool -Model -ShutterSpeedValue -ApertureValue -ISO -LensModel -ColorSpace -icc_profile input.jpg
如果你想保留-common里的所有标签,再补充额外需要的内容,也可以用这个更灵活的版本:
exiftool -all= -tagsfromfile @ -common -exif:ShutterSpeedValue -exif:ApertureValue -exif:LensModel -icc_profile= -overwrite_original input.jpg
内容的提问来源于stack exchange,提问作者Kyselejsyreček
相关产品推荐
相关产品推荐

