image - 在命令行上从图像中删除所有元数据
问题描述
所以我使用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
我想知道几件事:
- 如果在某种程度上需要拥有所有这些(尽管是最少的)元数据。也就是说,我想知道我们是否可以得到更多最小化并真正删除所有 metadata。
- 如果我们不能删除所有剩余的元数据,我想知道我是否至少可以删除前 3 个属性(ExifTool 版本号、文件名和目录)。
如果其中任何一个是可能的,想知道什么工具(最好是命令行工具)可以做到这一点。
解决方案
几乎所有剩余的数据都不是嵌入在文件中的元数据。它们是图像或底层操作系统的属性。甚至在 的情况下ExifTool Version Number
,您正在运行的 exiftool 版本。' -g ' 和 ' -G ' 选项可以显示每个标签来自哪个组;特别是,组族 0 和 1 可用于查看来自 ExifTool 和文件属性的标签,以及嵌入在图像文件本身中的标签。
权限、文件名、目录和时间戳等项目直接取自底层操作系统。这些是驱动器上每个文件的属性。没有它们,文件本身就不存在。
文件/Mime 类型条目是 exiftool 在确定文件类型时创建的文件的属性。
除了 APP14 条目,其余都是关于图像本身的数据。它是如何编码的,编码块的格式,图像的大小等。
此图像中唯一嵌入的是 APP14 块。该块不包含可以识别图像来源的数据。但是删除它有可能会显着改变图像的颜色(参见这篇文章)。可以通过添加-Adobe:All=
到命令来删除它。
推荐阅读
- scala - 控制目标拼花文件的数量
- android - 用户单击设置图标时如何将当前播放的音频设置为铃声?
- javascript - 使用 ChartJS 绘制 MySQL 中的数据
- angular - 使用角度 ngfor 和 ngif 的逗号分隔列表
- javascript - 如何添加格式的图像?
- powershell - Powershell $Credential 对象,以防止需要用户交互
- sql - HTML 格式的 SQL*Plus 假脱机数据
- node.js - Nodejs 客户端证书引擎
- ssh - 有没有办法向 ftp 用户隐藏文件夹内容但仍允许他们上传?
- c# - 如何使用EF代码首先将一个类的对象映射到另一个类TPH