图片信息里到底藏了多少东西?我把一张手机照片扒了五层,附批量清除命令

关键词:图片EXIF信息, 图片元数据, 删除照片GPS位置, 图片信息查看, Content Credentials

摘要:从EXIF、XMP、ICC到C2PA,一层层拆开一张手机照片里藏着的全部信息,讲清微信发原图会不会漏定位、只删EXIF为什么没用、怎样批量清理又不弄丢色彩配置文件,附exiftool和ImageMagick具体命令。

起因:一张猫的照片吐出了 187 行

图片

上周三下午,朋友在群里发了张猫的照片,配文「随便拍的别嫌弃」。我存下来顺手拖进 exiftool,终端刷了大概两秒,出来 187 行。机型 iPhone 15 Pro,拍摄时间 2024-03-17 14:22:06 +08:00,焦距 6.765mm,等效 24mm,F1.78,ISO 64,快门 1/120。再往下,纬度 31.2304xx,经度 121.4737xx,海拔 12.3 米,还有一行 GPSHPositioningError,写着 8 米。

8 米什么概念?那坐标直接落在她家小区里,误差范围内楼栋都能对得上。我把截图发回去,她沉默了十来秒,问我怎么删。

这事儿之后我陆续把手上四台设备——一台 iPhone、两台安卓、一台老微单——和六个常用 App 的图片信息全扒了一遍。越扒越觉得,大多数人对「图片信息」的理解停在「这图拍的是啥」,而一个 JPEG 文件里躺着的东西比你看见的多得多,并且它们分属完全不同的层,各有各的脾气,删错一层,要么泄露,要么颜色全毁。

第一层和第二层:像素是皮,EXIF 是骨

JPEG 不是一整块数据,它是一串「段」拼起来的。文件开头两个字节 FFD8 是 SOI,之后每个段都是 FF 加一个标记字节加两字节长度。APP0 塞 JFIF,APP1 放 EXIF 或者 XMP,APP2 是 ICC 色彩配置文件,APP13 归 Photoshop 和 IPTC,APP14 是 Adobe 自己留的位。

关键在于每个段的长度字段只有 2 字节,也就是说单个段最大 65535 减去 2,65533 字节,超了就塞不下。现在的手机特别爱往 APP1 里灌东西,缩略图、面部区域、厂商私有 MakerNote,动不动就上万字节。我手上有一台安卓机拍的样张,XMP 部分撑到 40 多 KB,结果 EXIF 里的 GPSLatitude 是空的,位置信息全被挤到 XMP 那边去了。

图片

这就引出一个绝大多数教程都不提的坑:你只删 EXIF 的 GPS,位置未必真删干净。 因为 XMP 命名空间里也有一套 GPSLatitude、GPSLongitude、GPSAltitude。很多「一键清除 EXIF」的在线工具只处理 APP1 里的 EXIF IFD,XMP 那块原封不动。想验证很简单,清完之后再跑一遍 exiftool -a -G1 -s 你的图.jpg,看有没有 XMP-exif 开头的字段。

第三层:XMP,Adobe 塞进来的那个大背包

2001 年 Adobe 推出 XMP,本质是一段塞进图片里的 RDF/XML。它能装的东西比 EXIF 宽得多:关键词、星级评分、人脸标注区域、历史编辑记录、(这里我本来想写「以及版权」就带过,但实际远不止)还有 Lightroom 那套调色参数。

Lightroom Classic 导出 JPEG 时,如果把元数据选项设成「全部」,XMP 里会带上一整串 crs: 前缀的字段——crs:Exposure2012、crs:Contrast2012、crs:Temperature、crs:Shadows2012、crs:Highlights2012、crs:Clarity2012、crs:Vibrance……基础面板上你拉过的每一根滑杆,基本都能在 XMP 里找到对应数值。

我不知道别人怎么想,反正我第一次发现这件事的时候有点被冒犯:把原片发给客户,等于把调色配方一起发了。同行花五分钟就能知道你加了 -38 的高光、+12 的清晰度。所以我自己导出交付版时,元数据一律选「仅版权」,crs 那堆东西直接不写。

顺便给个对照,这几套元数据的边界经常被混着说:

图片

标准 诞生年份 典型载体 主要装什么 平台读取情况
EXIF 1995 JPEG APP1 / HEIC item 拍摄参数、时间、GPS 大部分平台读得到
IPTC IIM 1979 JPEG APP13(Photoshop) 标题、作者、版权 老门户、图库还在用
XMP 2001 JPEG APP1(与 EXIF 抢位) 编辑历史、评分、调色参数 阅读器多,平台基本忽略
ICC Profile 1993 JPEG APP2 色彩空间定义 浏览器和系统会用
C2PA 2021 JPEG APP11(JUMBF) 来源签名、AI 生成标记 2024 年后才慢慢铺开

第四层:ICC,颜色到底对不对全看这一层

这层最容易被忽略,也最容易出事故。iPhone 默认用 Display P3 拍,色域面积大概覆盖 CIE 1931 的 45% 上下,而 sRGB 只有 35% 左右,Adobe RGB 约 50%。如果你用 -all= 一把梭把所有元数据删了,ICC 也跟着没了,浏览器只能按 sRGB 猜——原本鲜艳的红色会被压得发闷,绿色偏黄,这正是很多人说的「传上网颜色变灰了」。

所以正确做法是清元数据时把 ICC 保留下来。exiftool 有个经典写法:

# 全清 EXIF/XMP/IPTC/GPS,但把 ICC 拷回来
exiftool -all= -tagsfromfile @ -icc_profile -overwrite_original *.jpg

如果你用 ImageMagick 的 mogrify -strip,注意它是连 ICC 一起剥的,用完记得手动 emb 回去:magick input.jpg -profile sRGB.icc output.jpg。

图片

第五层:C2PA,2023 年之后才冒出来的新东西

2021 年 2 月,Adobe、微软、BBC、Arm、Intel、Truepic 几家凑在一起搞了个 C2PA,全称 Coalition for Content Provenance and Authenticity。它把来源信息做成带 X.509 证书签名的断言,用 JUMBF 盒子格式塞进图片,JPEG 里走的是 APP11 段。

硬件端第一次落地是 2023 年 10 月的徕卡 M11-P,机身内置安全芯片,拍完就签名。索尼 2024 年 1 月跟上,A9 III 支持。软件端 Photoshop 的 Content Credentials、微软的 Designer、OpenAI 的图像输出都已经在写这玩意儿。

它和前面四层的本质区别是:EXIF、XMP、IPTC 全是明文,用记事本都能改;C2PA 有签名,改一个字校验就挂。所以未来你判断一张图是不是 AI 生成的,看的不是画风,是这层清单里有没有 c2pa.actions 里那条 c2pa.created 加合成器信息。现在还早,但 2025 年往后这件事会越来越常见。

平台那边还叠了一层你看不见的信息

上面说的都是文件自带的。平台收到你上传的图之后,会自己算一遍指纹:pHash(感知哈希)64 位,aHash、dHash 备用,再加一轮特征点。查重逻辑一般是汉明距离小于 5 到 10 判为同一张,具体阈值各家不同。

图片

这意味着裁掉 10%、加个滤镜、改个亮度,指纹依然撞得上。做电商的朋友应该懂,同一个货源几家店铺用同一批图,重复铺货检测就是这么抓的。指纹和 EXIF 是两码事:平台会把你的 EXIF 剥光,但指纹留在它自己库里。

顺带说说传图渠道,这些是我自己拿几台设备测的,不代表全平台:微信勾选「原图」发送,对方保存后 EXIF 基本还在,GPS 也能读到;朋友圈那版压缩完,我所测的样本里 GPS 已经没了。小红书、微博上传后重新编码,元数据所剩无几。所以「发朋友圈等于公开定位」这说法在我测下来是不成立的,但把原图直接丢给别人,确实是。

怎么查、怎么删,命令都在这儿

查看:Windows 右键属性→详细信息能看到一部分;macOS 用「预览」按 ⌘I 打开检查器;想看得全还是得命令行。

# 看全部,带组名,带标签名缩写
exiftool -a -G1 -s IMG_1234.jpg

# 只看关心的几个
exiftool -Make -Model -LensModel -DateTimeOriginal -GPSPosition -ISO -FNumber -ExposureTime IMG_1234.jpg



![图片](http://img2.baidu.com/it/u=272726627,1307052216&fm=253&fmt=auto&app=120&f=JPEG?w=1026&h=471)


# 只清位置,EXIF 和 XMP 里的都清掉
exiftool -gps:all= -xmp:geotag= -overwrite_original *.jpg

# 全清但保 ICC(上面提过)
exiftool -all= -tagsfromfile @ -icc_profile -overwrite_original *.jpg

手机端直接从源头关掉更省事。iOS:设置→隐私与安全性→定位服务→相机→选「永不」。小米:相机→设置→关掉「保存位置信息」。华为:相机→设置→关掉「记录地理位置信息」。批量处理历史照片的话,把一堆图拷到电脑上跑上面那条 -gps:all= 就行,几百张一两秒的事。

最后

我现在的习惯是分两套走:交付给客户的成图,EXIF 时间机型留着,GPS、crs 调色参数、缩略图一律清掉,ICC 保住;私人照片在手机里就把相机定位关了,省得事后一张张补刀。

哦对了,别再问我为什么没事去扒别人的猫片了,这毛病确实有点欠。但你要是也手贱试一次,大概率会跟我一样,从此发原图之前先犹豫三秒钟。

标签: