Linux:从照片中移除 EXIF 数据

数码相机,包括手机上的相机,都会在拍摄照片的时候给保存的文件添加一些 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/>。转载请保留此信息及相应链接。

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)