三套标准,描述同一张图
EXIF 由相机写入,讲的是拍摄这件事:机身、镜头、曝光、时间、坐标。IPTC 早它几十年源自新闻通讯社,讲的是这次任务:图注、署名、来源、使用条款。XMP 是 Adobe 基于 RDF 的容器,讲的是编辑过程:某个应用做了什么,外加它选择镜像过来的另外两套里的内容。ICC 配置文件则完全不是描述性的——它是把文件里的数字变成颜色的说明书。一张从新闻编辑流程里出来的 JPEG,四样常常都带着,而且彼此对不上。
这里读取哪些分组
容器本身的 File 和 JFIF;EXIF 和 GPS;XMP;IPTC;ICC;Photoshop 资源块;厂商备注,也就是相机厂商的私有扩展;以及一个「计算」分组,用于那些推导出来而非直接存储的值,比如由度分秒拼成的十进制坐标。格式自身的结构会单独归组——PNG 文件、PNG 文本、WebP、GIF——这样你能分清一个值是从块里读出来的,还是从 EXIF 标签里读出来的。
哪些不读,以及这对质检为什么要紧
内嵌的 EXIF 缩略图被刻意排除,因为它是一张图而不是一个标签,放进来会淹没整张表。旁挂的 .xmp 文件是另一个文件,不会被打开——只读你拖进来的这一个文件里嵌入的内容。实况照片配对的视频不读。而且不做任何推断:某个标签不存在,它就不出现在表里,不会被填上一个看起来合理的默认值。当你要确认某个流程有没有写入某个字段时,「空值行」和「没有这一行」是两件不同的事。
JSON 导出就是同一份数据,按分组组织
复制 JSON 会给你一个对象,顶层键就是上面那些分组,值是该分组的标签。它是为做 diff 准备的:把两个文件分别跑一遍、各导一份,diff 就能精确显示你的流程添加、丢弃或改写了哪些字段。因为解析在页面里完成,文件从不离开这台机器——而这通常正是人们一开始就没法用托管工具做这件事的原因。
关于原始元数据分组
为什么同一个字段在两个分组里、值还不一样?展开
因为 EXIF、IPTC 和 XMP 各自定义了自己的字段,而应用只更新它在意的那一个。在某个工具里改过的描述可能写进了 XMP,而 IPTC 的图注还是原来的文字。表格会把两者都显示出来,而不是替你选一个。
能导出来做 diff 吗?展开
可以。复制 JSON 会把整次解析结果放到剪贴板,按分组组织并格式化过,所以两份导出可以逐行干净地对比。
厂商备注会被解码吗?展开
在解析器认得该厂商布局的范围内会。厂商备注是私有且无公开文档的,所以有些标签能解析出名字,有些则保持原始值。两种都按读出来的样子显示。
会读取旁挂的 XMP 文件吗?展开
不会。只读取你拖进来的那个文件内部嵌入的元数据。同目录下的 .xmp 是另一个文件,不会被打开。
按文件格式
- 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 与厂商私有段。文件不会上传。