在命令行上从图像中删除所有元数据

Remove all metadata from an image on the command line

所以我使用 exiftool -all= 命令行工具从图像中删除元数据。但是,当我打印结果图像的元数据时,我得到了这个:

$ exiftool myimage.jpg
ExifTool Version Number         : 11.30
File Name                       : myimage.jpg
Directory                       : out
File Size                       : 2.8 MB
File Modification Date/Time     : 2019:05:16 03:34:02-07:00
File Access Date/Time           : 2019:05:16 03:34:02-07:00
File Inode Change Date/Time     : 2019:05:16 03:34:02-07:00
File Permissions                : rw-r--r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
DCT Encode Version              : 100
APP14 Flags 0                   : [14]
APP14 Flags 1                   : (none)
Color Transform                 : YCbCr
Image Width                     : 3729
Image Height                    : 2246
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 3729x2246
Megapixels                      : 8.4

我想知道一些事情:

  1. 如果在某种程度上需要 拥有所有这些(尽管很少)元数据。也就是说,我想知道我们是否可以变得更小并且真正删除所有元数据
  2. 如果我们不能删除所有剩余的元数据,我想知道我是否至少可以删除前 3 个属性(ExifTool 版本号、文件名和目录)。

如果有任何可能,想知道什么工具(最好是命令行工具)可以完成这个。

几乎所有剩余数据都不是文件中嵌入的元数据。它们是图像或底层 OS 的属性。或者甚至在 ExifTool Version Number 的情况下,你的 exiftool 版本是 运行。 '-g' and '-G' 选项可以显示每个标签来自哪个组;特别是,组系列 0 和 1 可用于查看来自 ExifTool 和文件属性的标签,以及嵌入在图像文件本身中的标签。

权限、文件名、目录和时间戳等项目直接取自底层OS。这些是驱动器上每个文件的属性。没有它们,文件本身就不存在。

file/Mime 类型条目是 exiftool 在确定文件类型时创建的文件的属性。

除APP14条目外,其余为图像本身的数据。它是如何编码的,编码块的格式,图像的大小等。

此图像中唯一嵌入的是 APP14 块。此块不包含可以识别图像来源的数据。但是删除它可能会显着改变图像的颜色(参见 this post)。可以通过在命令中添加 -Adobe:All= 来删除它。