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/>。转载请保留此信息及相应链接。

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用 * 标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>