EXIF 只是若干个段中的一个
JPEG 是一串标记段,元数据分散在其中不止一个段里。EXIF 位于一个以 Exif 加两个空字节开头的 APP1 段。XMP 位于第二个 APP1 段,靠一个命名空间 URL 来区分。IPTC 装在 APP13 的 Photoshop 资源块里,ICC 色彩配置文件则在 APP2。删除 EXIF 段,删掉的恰好只是第一个。这正是为什么诚实的说法是「EXIF 清理」而不是「删除全部元数据」——一个只删了一个 APP1 却宣称做到后者的工具,描述的是它没做过的事。
缩略图也在被删之列
EXIF 在自己的目录里带着一份小尺寸的图像副本,由相机写入,好让预览能立刻出现。它是在拍摄那一刻生成的——这意味着一张事后裁剪或修过的图,仍可能带着原始画面的缩略图。已经不止一张公开发表的照片,被陌生人用这种方式还原出了裁掉的部分。删除 EXIF 段会把这份内嵌副本一并带走。
「删除」不是一种操作
你的文件会经历什么,完全取决于它是什么。JPEG 可以删掉一个段,同时把压缩后的图像数据逐字节复制过去,画面本身没有任何变化。工作区支持的其他格式在浏览器里都做不到这种编辑,只能把图像解码后重新写出——这会一次性丢掉所有嵌入信息,代价是色彩配置文件、动画,以及有损容器上的一部分画质。
清理够不到的东西
这里的一切都在文件内部起作用,而能指认一张照片的信息,有些并不在文件里。文件名往往才是那个泄密点——IMG_0001 什么也没说,但你自己起的名字可能说了很多。文件系统保存着自己的创建和修改时间,它们在某些传输方式里会跟着文件走,在另一些里不会。至于画面本身拍到了什么,任何元数据工具都无能为力:一张清理过的截图,依然显示着当时屏幕上的一切。
各格式清理后会发生什么
- JPEG
- 删除 EXIF APP1 段。像素不变。XMP、IPTC 和 ICC 保留。
- PNG
- 以 PNG 重编码。像素不变,所有块被丢弃。
- GIF
- 以 PNG 重编码。只保留一帧,动画不保留。
- WebP
- 以 WebP 重编码。即使原文件无损,画质也可能变化。
- HEIC / HEIF
- 以 JPEG 重编码。容器改变,嵌入信息无一保留。
- AVIF
- 以 JPEG 重编码。没有浏览器能写 AV1。
- TIFF
- 以 JPEG 重编码。它的标签和像素索引是同一套结构。
关于删除元数据
这会删掉照片里的全部元数据吗?展开
对 JPEG 来说不会,任何只删 EXIF 段的工具都做不到。它删掉的是装着相机、时间戳和 GPS 的那个段。XMP 在另一个 APP1 里,IPTC 在 APP13 块里,色彩配置文件在 APP2,这三样都会留下来。其他格式则是整张图重新编码,任何嵌入信息都不会留下。
画质会变吗?展开
JPEG 不会——压缩后的图像数据是逐字节复制过去的,像素完全一致。PNG 和 GIF 以 PNG 写回,同样是精确的。HEIC、AVIF、TIFF 和 WebP 会重新编码,因此可能变化。
我的原文件会被改动吗?展开
永远不会。你得到的是下载目录里的一个新文件,名字沿用原文件并加上后缀。你拖进来的那个文件原封不动。
我能确认真的清干净了吗?展开
可以,而且应该确认。下载之后,清理过的副本会成为工作区里的当前照片,所以下方的标签表读的就是你刚拿到的那个文件。如果某个你以为会消失的分组还在列表里,你当场就能看见,而不是事后才发现。
按文件格式
- HEIC 元数据查看
- 打开 HEIC 或 HEIF,在浏览器里读取它的 EXIF、GPS 和苹果厂商备注,即使浏览器本身显示不了这张图。文件不会上传。
- PNG 元数据查看
- PNG 没有 EXIF 段。看清一个 PNG 实际携带的 tEXt、iTXt 和 eXIf 块,全部在浏览器本地读取。文件不会上传。
- WebP 元数据查看
- WebP 把元数据放在 RIFF 块里,而且只有扩展格式才有。看清一个 WebP 携带了什么,全部在浏览器本地读取。文件不会上传。
- TIFF 元数据查看
- EXIF 就是从 TIFF 来的。在浏览器里读取 TIFF 的图像文件目录、标签和字节序,哪怕浏览器根本显示不了它。文件不会上传。
- AVIF 元数据查看
- AVIF 用的是和 HEIC 相同的容器、相反的授权方式,这正是你的浏览器能显示它的原因。在本地读取它的元数据。文件不会上传。
- GIF 元数据查看
- GIF 没有 EXIF,也没有色彩配置文件。看清它确实携带的注释块和应用扩展块,全部在浏览器本地读取。文件不会上传。
- RAW 元数据查看
- 大多数 RAW 文件底层就是 TIFF,所以浏览器显示不了它,却能完整读出它的 EXIF、GPS 与厂商私有段。文件不会上传。