首页 > 解决方案 > 在命令行上从图像中删除所有元数据

问题描述

所以我使用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. 如果在某种程度上需要拥有所有这些(尽管是最少的)元数据也就是说,我想知道我们是否可以得到更多最小化并真正删除所有 metadata
  2. 如果我们不能删除所有剩余的元数据,我想知道我是否至少可以删除前 3 个属性(ExifTool 版本号、文件名和目录)。

如果其中任何一个是可能的,想知道什么工具(最好是命令行工具)可以做到这一点。

标签: imagesecuritymetadataexiftool

解决方案


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

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

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

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

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


推荐阅读