图片EXIF信息怎么看、怎么删?同一张图在微信和Lightroom里读出两个结果,问题出在这三层

关键词:图片EXIF,图片元数据,IPTC,XMP,C2PA内容凭证

摘要:同一个作者名,Lightroom里填了,投稿系统却读不到;同一张照片,邮箱附件还留着拍摄时间,微信发出去就没了。这篇把图片信息拆成容器层、描述层、凭证层三层来讲,附exiftool实操命令、JPEG/PNG/HEIC的存储差异,以及那个很多人都踩过的EXIF缩略图坑。

上个月帮朋友弄一个摄影比赛的投稿,征稿启事里写着「请勿删除照片原始信息」。她在Lightroom里导出,顺手勾了「移除位置信息」,交上去第二天就被打回,理由是Byline字段为空。她特别不服气,说作者那一栏我明明填了啊。我拿到文件扔进exiftool一跑,结果挺有意思:她的名字躺在XMP-dc:Creator里面,而IPTC IIM的2:080 Byline是空的。评审系统读的是IPTC,所以她填的那个「作者」在评审那边等于没写。同一个软件、同一张图、两个字段,两个结局。这事之后我把图片信息从头到尾重新梳理了一遍。

图片

大多数人嘴里说的「图片信息」,其实混了三层东西,混着聊就永远聊不明白。第一层是容器层,回答「这段信息写在文件的哪个位置」——JPEG靠APPn段,PNG靠chunk,HEIC靠box。第二层是描述层,就是平时说的EXIF、IPTC、XMP,回答「信息本身是什么」。第三层是凭证层,C2PA、SynthID这类,回答「这图是谁生成的、中途有没有被改过」。三层里任何一层断了,你在不同软件里看到的结果就不一样。绝大多数教程只讲第二层,翻车基本都翻在第一层和第三层。

图片

描述层现在是三套标准并行在跑,这件事本身就挺荒诞。EXIF是1995年JEIDA起的头,现在归CIPA管,最新版本2.32发布于2019年,它只管「照片是怎么拍出来的」——FNumber(0x829D)、ExposureTime(0x829A)、ISO(0x8827)、DateTimeOriginal(0x9003)、Orientation(0x0112)、GPS IFD(0x8825),手机厂商还往里塞自己的MakerNote。IPTC IIM更老,1991年国际新闻电信理事会搞的,给新闻图片配文字用的,字段是一串数字编号:2:120是Caption,2:025是Keywords,2:080是Byline。它最大的坑是不吃Unicode,中文要么走ISO 2022转义序列,要么直接被扔掉。XMP是Adobe 2001年推的,本质是RDF/XML,想塞什么塞什么,中文没压力。三套标准谁也没干掉谁,所以一张专业流程出来的图,同一个「作者」可能同时存在三个地方,还互相不一致。

图片

容器层决定了这三套标准能不能写进去、能写多重。JPEG最能装:APP0放JFIF,APP1放EXIF或XMP,APP2放ICC色彩配置,APP13放Photoshop的IRB资源块——IPTC IIM就藏在APP13里那个8BIM资源ID 0x0404的位置。单个APP段有65533字节的天花板,XMP一旦写爆,Adobe会把剩下的拆成Extended XMP挂到文件尾部,命名空间是http://ns.adobe.com/xmp/extension/,很多老工具读到这就断了。PNG更晚熟,直到2017年的PNG 1.5才正式加了eXIf chunk,在那之前PNG里没有标准位置放EXIF,所以你拿某些老工具去看PNG读不到拍摄参数,很正常,不是文件坏了。HEIC和WebP分别走ISOBMFF的box和RIFF的chunk,各自的解析器各玩各的。

真正让人第一次意识到「图片里还有信息」的,多半是微信。你发一张照片不勾原图,微信会重新编码,EXIF基本全掉;勾了原图,拍摄时间和机型一般能活下来,但GPS经常被拿走,所以「用EXIF证明照片是今天拍的」这种事在微信这条链路上本来就靠不住。微博、小红书这类压缩更狠,出来的图大概率连Orientation都没了,你竖着拍的照片发上去变横的,就是这个原因。我做过一次挺傻的测试,同一张原图分别走微信原图、微信非原图、微博、小红书、邮箱附件、iCloud链接六条路,最后只有邮箱附件和iCloud链接还能跑出完整的DateTimeOriginal。所以判断一张图的元数据是不是「可信」,先看它中间走了哪条路,比看字段本身有用得多。

图片

删信息这件事也有坑,而且是那种真会出事的坑。EXIF里有个IFD1,塞着一张160x120左右的JPEG缩略图,是相机或软件当初生成的。你在Photoshop里把身份证号裁掉、打码,主图是干净了,这张缩略图很可能还是裁剪之前的样子。命令是 exiftool -b -Thumbnail 图片名.jpg > out.jpg,导出来看一眼就明白了。所以别以为「我打码了」就等于安全。真要删干净,也别只删EXIF,XMP和IPTC是另外存的:exiftool -EXIF:all= -XMP:all= -IPTC:all= 文件名,或者干脆 -all=。Windows右键属性里那个「删除属性和个人信息」只删一部分,macOS预览的「导出」会重写一遍,Google相册下载回来的图基本啥都不剩,几个路子效果完全不一样。

图片

第三层凭证层是这两年才热闹起来的。C2PA 1.0在2022年1月发布,2.0是2024年10月,徕卡M11-P是2023年10月第一台内置内容凭证的相机,之后尼康Z9、索尼A7 IV也通过固件跟上。Google走的是另一条路,SynthID直接把水印嵌进像素里。听起来很唬人,但这类信息是「可选附加」,不是「强绑定」:截个屏、发个朋友圈、平台压缩一下,凭证链就断了,而且断了之后你没法区分它是「本来有后来断了」还是「从来就没有」。现在拿C2PA有无去判断一张图是不是AI生成,跟拿EXIF有无去判断照片是不是真拍的,犯的是同一个错误。

图片

回到开头那个投稿的事。我最后给朋友的方案是:Lightroom导出时把「元数据」下拉从「仅版权」改成「全部」,别用「移除位置信息」那个勾,位置单独用 -gps:all= 处理。听着啰嗦,但这就是问题的样子——图片信息更像是别人挂在你行李牌上的附言,不是刻在箱子上的指纹。它经过谁的手,谁就有权改写或者撕掉。想靠它证明点什么之前,先数数这张图中间转了几手。

标签: