图片信息怎么查怎么删?EXIF 元数据完整教程,附 GPS 泄露实测和批量清除脚本

关键词:图片信息, EXIF查看, 图片元数据, GPS信息泄露, 批量清除EXIF

摘要:从一次闲鱼卖二手被陌生人报出小区位置的经历说起,拆解图片信息的三层结构(像素层/容器层/元数据层),实测 3127 张照片的 EXIF 分布,讲清 WGS-84 与 GCJ-02 坐标系导致的定位偏移大坑,对比微信、iMessage、Telegram、Instagram 等平台的元数据剥落情况,附 Windows/macOS/iOS/Android/exiftool 五种查看方法和保留 ICC 的批量清除脚本。

上周三晚上十一点多,我蹲在电脑前帮朋友查一张图。她在闲鱼卖二手包,拍图的时候顺手把包放在飘窗上,背景是小区的楼。第二天有人私信问她「你们小区物业费多少」。她把截图发我,我说你别慌,先把原图传过来。原图导进 exiftool 跑了一遍,经纬度、拍摄时间、iPhone 机型、系统版本,一条不落躺在里面。那个坐标换算成十进制是 31.2xxxx, 121.4xxxx,精度到小数点后六位,大概只差没把门牌号写上去。

图片

这件事之后我自己也翻了一遍。图片信息这东西,大多数人以为就是「看看分辨率」「看看体积」,实际上它至少分三层:像素层,就是你眼睛看到的画面;容器层,是 JPEG/PNG/HEIC 这些格式自己的参数,比如压缩质量、色度抽样是 4:2:0 还是 4:4:4、颜色空间是 sRGB 还是 Display P3;还有一层是元数据层,EXIF、XMP、IPTC、ICC Profile 全挂在这儿。前两层出问题顶多是画质糊了,第三层出问题,是你家门朝哪边开。

我扒了自己 3127 张照片,数据比想象中难看

我把硬盘里攒了七八年的照片塞进一个文件夹,跑了一条 exiftool -csv -r ./ > meta.csv,然后拉进表格筛。结果挺有意思。

总共 3127 张(含截图和下载来的图),其中带完整 EXIF 的相机/手机原片是 1846 张。这 1846 张里带 GPS 坐标的 1103 张,差不多六成。带机身序列号的 742 张——这个字段比坐标还讨厌,因为它能把不同平台上发过的「你」串成一条线。另外有 219 张是屏幕截图,没 GPS,但 Software 字段里明写着 iOS 17.4.1 之类的系统版本。

最让我意外的是时间戳。有 400 多张是同一秒或间隔不到 0.01 秒的连拍,但我印象里从没开过连拍。查了一圈才想起来,是某次用第三方相机 App 拍的,它把毫秒精度写进了 SubSecTimeOriginal 字段。也就是说,除了「哪年哪月哪日拍的」,它还记得「快门按下的第几毫秒」。

图片

那个让 90% 教程翻车的坐标偏移

这里有个几乎没人提的坑:EXIF 里存的是 WGS-84 坐标系,国内地图 App 用的不是这个。

高德、腾讯是 GCJ-02(俗称火星坐标系),百度是 BD-09,在 GCJ-02 基础上又偏一次。你把 EXIF 里的原始坐标直接粘进高德搜索框,落点是错的。偏多少?各地不一样,城区一般几十米到几百米都有。我在上海市中心拿一张带 GPS 的原片试过,落点直接跳到隔壁街区,直线差大概三四百米。所以网上一堆「从照片找到拍摄地」的教程,其实找的是个偏移过的假位置。

exiftool 会直接吐给你 -GPSPosition 的十进制度数,不用自己算。真要手动验算,公式是:纬度 = 度 + 分/60 + 秒/3600。比如 31 deg 13' 43.2" N,就是 31 + 13/60 + 43.2/3600 = 31.2286。但算完了它还是 WGS-84,地图上照样偏。这就是为什么有人照着教程定位,最后定位到了马路对面的便利店。

发出去之后,图里还剩多少信息

图片

我拿同一张原图(带 GPS、机型、序列号)走了一遍各家,再用 exiftool 对比。先声明:样本就我一个人,测量时间大概 2024 年底,平台改版很勤,结论随时可能失效,别当审计报告看。

  • 微信聊天不勾「原图」:长边压到 1000 像素出头,体积从 4.2MB 掉到 300KB 上下,GPS 没了,机身序列号没了,拍摄时间有时候还能捞到。
  • 微信勾「原图」:体积基本不动,但 GPS 是不是留着我测下来不太稳定,不同版本表现不一样。所以别把微信当脱敏工具,这是重点。
  • 朋友圈:必压,我这批样本里 GPS 和机身信息清得挺干净。
  • iMessage / AirDrop:原样传,一条不少。这也是为什么「隔空投送给朋友」和「发微信给朋友」,隐私后果完全是两回事。
  • Telegram 发「文件」:完整保留。发「照片」:压缩 + 剥离。
  • Instagram:GPS 从 2012 年起就剥掉了,但会保留一部分相机参数。
  • 小红书、闲鱼这类:压缩很厉害,具体剥离哪些字段我没系统测过,不敢乱说。

顺带一句,截图不等于安全。分享截图的时候,那串 Software 字段(系统版本号)能暴露你的设备新旧,对搞社工的人来说也是线索。

查看方法:五种,按你手头设备挑

  • Windows:右键图片 → 属性 → 详细信息。就几十个常见字段,GPS 要往下滚。想看全的还是上 exiftool。
  • macOS:选中图按 ⌘I 打开「显示简介」,展开「更多信息」。比 Windows 全一点,也就那样。
  • iOS:照片 App 打开图,点下面的 ⓘ 或往上滑。iOS 15 之后能看到时间、地点、机型、镜头、快门光圈 ISO,点地点还能直接跳地图。
  • Android:Google 相册里上滑;不少国产 ROM 的相册也有「详情」,但字段翻译得乱七八糟,有的把光圈直接写成「光圈值」,有的干脆不显示。
  • 命令行(推荐):exiftool photo.jpg。想看得有结构一点用 exiftool -a -G1 -s photo.jpg,-G1 会按来源分组,告诉你哪个字段属于 EXIF、哪个属于 XMP、哪个是文件系统层的。排查「为什么删了还在」的时候这个特别有用。

图片

清除:别用属性面板那个按钮,它删不干净

Windows 属性里那个「删除属性和个人信息」能删掉一部分,但删不掉 XMP,也删不掉内嵌缩略图。对,很多相机在 EXIF 里塞了一张小缩略图,你只改元数据不改像素,缩略图里可能还留着原图。

稳妥的做法是走 exiftool:

# 安装
brew install exiftool                      # macOS
sudo apt install libimage-exiftool-perl    # Debian / Ubuntu



![图片](http://img2.baidu.com/it/u=4221108076,2541371827&fm=253&fmt=auto&app=120&f=JPEG?w=1131&h=800)


# 先看一遍,别急着删
exiftool -a -G1 photo.jpg

# 全删,但保留 ICC 颜色配置
exiftool -all= -tagsfromfile @ -icc_profile -overwrite_original photo.jpg

# 批量处理整个目录
exiftool -all= -tagsfromfile @ -icc_profile -overwrite_original -r ./photos/

# 只删 GPS,其他留着(摄影师想保留版权信息的话)
exiftool -gps:all= -overwrite_original photo.jpg

为什么非要保留 ICC?有些图带 Display P3 的 ICC Profile,全删之后部分软件会当成 sRGB 处理,红色会变得特别艳。我自己踩过这个坑——一批商品图删完元数据,网页上看还行,导进 Photoshop 颜色就不对了,找了大半天才反应过来是 ICC 被一起删了。

图片

我的观点可能跟大多数人相反

聊「图片信息」的时候,大部分人问的是「怎么删」。但我觉得更该问的是「哪些信息本来就不该被记录」。

手机相机默认开着地理位置,这个开关很多人一次都没关过。iPhone 可以在「设置 → 隐私与安全性 → 定位服务 → 相机」里改成「永不」,需要的时候临时开。Android 各家路径不一样,一般在相机 App 设置里就有「保存位置信息」的开关。这一步做了,比事后删元数据省事一百倍。

另一个方向是,元数据本身是有用的。摄影师的版权信息、新闻图片的拍摄参数,还有现在 C2PA(Adobe 2021 年牵头搞的内容凭证标准,徕卡 M11-P、索尼 a9 III、尼康 Z9 这些机器已经支持写入)——这些都是在给图片「加信息」,用来对抗 AI 生成和图片篡改。所以元数据不是坏东西,坏的是你不知道它在,也不知道它一路在传。

我现在的习惯是发图前跑一遍 exiftool -GPSPosition,有坐标就单独删那一项,其他参数留着。多花三秒钟,少一个被人顺着网线摸到楼下的可能。

标签: