数码相机,包括手机上的相机,都会在拍摄照片的时候给保存的文件添加一些 EXIF 元数据(Metadata)。这些数据中有拍摄时间、镜头数据、拍摄环境设据甚至是地理位置信息等等。分享这些文件出去的时候,比如上传到网站,我们一般希望将这样一些数据抹除,以免泄漏自己的隐私。
Linux 上的这种工具还是挺多的,比如 ImageMagick 中的 mogrify
,当然还有名字就已经显示出功能的 exiftool
这个工具。
openSUSE Tumbleweed 默认安装的时候只有 ImageMagick 而没有 exiftool,所以这样做是最方便的,
mogrify -strip /path/to/photo.jpg
如果觉得这名字不好记,那就用 exiftool
,但是可能需要自己另外安装。一般的 Linux 发行版的官方软件源中应该都有这样的软件包。比如 Ubuntu/Linux Mint/Dedian 上的 libimage-exiftool-perl
和 openSUSE 上的 perl-Image-ExifTool
。有这么多名字其实是软件打包过程中的命名不同造成的,实际上都是来自同一个源码。exiftool
就在这个软件包中。
这种常见的工具可能在安装操作系统的时候就已经自动安装了。如果没有,在 openSUSE 上安装 perl-Image-ExifTool
即可,
$ sudo zypper install perl-Image-ExifTool
然后就是几个简单的操作。
从图片中读取 EXIF 元数据,
$ exiftool photo.jpg
从图片中移除 EXIF 元数据,
$ exiftool -all= photo.jpg
注意 -all=
后面有个空格,表示将其中的所有 EXIF 属性都设置为空。这个工具为了慎重,会将原始文件另存为「_original」后缀的文件。比如这里的 photo.jpg_original
。
如果要同时从一个文件夹中的所有照片里移除 EXIF 信息,可以使用通配符 *
,
$ cd /path/to/the/folder/ $ exiftool -all= *
上面两条指令先切换路径到需要操作的目录(文件夹),然后用通配符来对其中的所有图片文件执行操作。
当然也可以之给某一类型的文件执行这个操作,比如该目录中的所有 jpg 文件,
$ exiftool -all= *.jpg
当然 exiftool
还可以执行其它的操作,具体可以通过 exiftool --help
指令来查看其帮助文件。
另外,ImageMagick 中的 identify
也可以用来提取照片文件中的 EXIF 信息。比如博主就曾经用它来提取照片的 EXIF 日期时间作为文件名。©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/linux-tip-remove-exif-metadata-from-image/>。转载请保留此信息及相应链接。