暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在Linux命令行中去除图像的 Exif 数据呢?

TIAP 2022-08-22
2390

大多数图片都会包含 Exif(可交换图像文件格式)数据,其中包括一些关键数据,比如图片的拍摄日期、设备信息、拍摄地点等。

一般情况下,我们可以利用这些信息知道图片的原始数据,但某些情况下,也可能会泄露隐私。本文介绍下如何在 Linux 命令行中删除图片的 Exif 数据。


方法1:使用 ExitTool

ExitTool 提供了多个选项在不对图片进行压缩的情况下删除 Exif 数据。

首先需要对其安装。

Debian 系统:

    sudo apt install libimage-exiftool-perl

    基于RHEL的系统:

      sudo dnf install perl-Image-ExifTool

      基于Arch的系统:

        sudo pacman -S perl-image-exiftool


        ExifTool 可以用于查看与图片相关的元数据,可使用如下语法格式:

          exiftool <image.jpg>


          从图像中删除元数据

          图像的元数据和 Exif 数据是有区别的。元数据包括文件的创建者、用途以及注释(如果有的话)等详细信息。

          Exif 数据仅包括与图像相关的相关信息,比如尺寸、位置、用于创建或修改图片的软件等。

          删除元数据的同时,也会将 exif 数据删除掉。


          要删除元数据,需要使用 -all 选项。它将创建一个没有元数据的图像副本,原始文件将被重命名,并在文件末尾附加“_original”。

            exiftool -all= <image.jpg>

            现在我们再使用 exif 命令查看新文件的 exif 数据:

            如上图所示,我已经成功地从图像中删除了exif数据,并且由于不涉及压缩,所以图片的大小并没有改变。


            如果我们要删除元数据,但是不希望创建文件副本,只在原始图像上修改,该怎样做呢?可以使用 -overwrite_original 选项:

              exiftool -overwrite_original -all= <image.jpg>


              删除目录中所有图像的元数据

              ExifTool 可以删除某个目录下所有图像的元数据,使用 -recurse 来实现,该选项会遍历子目录。

              该操作会复制原始文件,并从文件副本中删除元数据;原始文件将会被重命名,在其末尾添加“_original”。

                exiftool -recurse -all= <path of directory>


                只删除 Exif 数据

                如果只删除 exif 数据,需要使用 -EXIF 选项:

                  exiftool -EXIF= <image.jpg>

                  现在我们再来看一下图片信息:


                  方法2:使用 ImageMagick

                  与 ExitTool 不同,ImageMagick 不是仅仅用于处理图片元数据或 exit 数据的工具,因此它不会有太多的选项。

                  即便如此,使用 ImageMagick 依然能很好的完成去除 exit 数据的工作。

                  首先,ImageMagick 也需要安装。

                  在 Debian 系统中:

                    sudo apt-get install imagemagick

                    基于 RHEL 的系统:

                      sudo dnf install imagemagick

                      基于 Arch 的系统:

                        sudo pacman -S imagemagick

                        安装完成之后,就可以使用 ImageMagick 查看图像的详细信息了。要查看 exit 数据,可以使用如下语法结构:

                          identify -format '%[EXIF:*]' <image.jpeg>

                          要删除 exif 数据,可以在 mogrify 中使用 -strip 选项,如下所示:

                            mogrify -strip <image.jpeg>

                            删除 exif 数据后,我们再来使用上一个命令来检查一下,是否删除成功:

                              identify -format '%[EXIF:*]' <image.jpeg>

                              如上图所示,没有任何信息的输出,这表示 exif 数据已经被删除。


                              此外,也可以使用 ImageMagick 删除整个目录下所有图像的 exif 信息。但是与 ExifTool 不同,ImageMagick 只能用于当前目录下的图像文件,而不能指定路径。

                              要删除当前目录下所有图像的 exif 数据,可以使用如下命令:

                                mogrify -strip *


                                以上就是本次分享的在命令行删除图像 exif 数据的两种方式,欢迎讨论。



                                文章转载自TIAP,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                评论