简体中文

图像和照片·图像元数据隐私工具

WebP 如何在 RIFF 块中存储 EXIF 和 XMP,以及如何剥离它们

· 工作原理

exif 图像隐私 文件格式

WebP RIFF 容器删除 EXIF 和 XMP 块,同时保留 VP8 图像块
原始 ToolAcre 矢量图

WebP 将其图像数据包装在 RIFF 容器中,扩展格式可以在图片旁边携带 EXIF 和 XMP 块。这篇文章解释了容器、VP8X 标头中的标志,以及浏览器工具必须执行哪些操作才能干净地剥离元数据。

WebP 中仍然有 GPS - 为什么将 JPEG 转换为 WebP 不会自动删除其元数据

将源照片转换为 WebP 并不能证明其 GPS 或编辑元数据消失。扩展 WebP 可以携带 EXIF 块,其中包含压缩图片旁边的 TIFF 块和 XMP 块。 ToolAcre 读取 EXIF 字段,报告存在 XMP 数据包,而不解析其 XML,并将两者从清理后的副本中删除。

RIFF 简介 — 'RIFF' 标头、'WEBP' 表单类型、四字符块名称、小端字节序大小和偶数字节填充

WebP 使用 RIFF 容器:文件以 RIFF 开头,带有小尾数大小并将格式标识为 WEBP。接下来的每个块都有一个四字符名称、一个小端有效负载大小以及一个可选的填充字节(当有效负载长度为奇数时)。步行者尊重该填充,因此下一个块从正确的边界开始。

简单与扩展 WebP — 为什么普通的“VP8”或“VP8L”文件不能携带元数据,以及“VP8X”如何为 ICC、alpha、EXIF、XMP 和动画添加标志位

简单的 WebP 可能包含 VP8 或 VP8L 图像块,而扩展文件使用 VP8X 来声明元数据、颜色配置文件或动画等功能。清理器不会将一种编码模式转换为另一种编码模式。它会遍历存在的块,保留图像和动画块,并仅修改元数据删除后所需的容器详细信息。

EXIF 和“XMP”块 — TIFF 结构的 EXIF 块和 XMP 数据包存储为图像数据的同级块

EXIF FourCC 包含共享 EXIF 读取器消耗的 TIFF 数据。 XMP 使用四字符名称 XMP 后跟一个空格;空格是块标识符的一部分。阅读器不会解释该数据包,但它报告 XMP 可能包含作者、位置或编辑历史记录,因此存在不会被误认为是无害的未知块。

剥离必须正确执行的操作 — 删除块、清除匹配的 VP8X 标志位并重写 RIFF 大小以使文件保持有效

删除块只是 WebP 修复的一半。 VP8X 具有宣布 EXIF 和 XMP 的存在位,因此这些位必须在其块消失后清除,并且必须为较短的容器重写 RIFF 的大小字段。该实现执行这两种操作,同时保留 ICCP 并逐字节复制 VP8 或 VP8L 图像数据。

工作示例:转换后的产品照片 - 检查、剥离并确认有损或无损图像块是字节相同的

转换后的产品图像提供了有用的检查:检查它、记录任何 GPS 字段并注意是否存在 XMP 数据包。剥离它,验证这些块不再出现并比较图像块字节。测试套件要求清除 EXIF 标志、保留 ICCP 以及声明的 RIFF 大小等于实际清理的长度。

这不包括什么 - 动画 WebP 帧和 ICC 配置文件决策;工具页面记录了它如何对待它们

该工具保留 ICCP,因为删除颜色配置文件可以明显改变颜色,并且它保留 ANIM 和 ANMF 块而不是展平动画。它不会解释 XMP 内容、在压缩图片数据中查找隐写术或清理 HEIC、AVIF 和其他不受支持的容器。这些都是明确的限制,而不是无声的后备措施。

要点:WebP 元数据是一个块,而不是一个谜 — 图像元数据隐私工具会删除它而不重新编码图像

WebP 元数据是具有特定结构簿记的容器功能,而不是像素的神秘属性。删除 EXIF 和 XMP、清除其 VP8X 标志并更新 RIFF 大小足以满足支持的范围。由于图像块没有被解码,清理后的副本保留了图片数据,同时使其更窄的隐私声明可供检查。