图片信息到底藏了什么?EXIF、GPS、拍摄参数三层拆解,附6个查看和清理工具的实测

关键词:图片信息,EXIF查看,图片元数据,图片隐私,GPS定位

摘要:把图片信息拆成像素层、元数据层、语义层三层来讲,附 ExifTool 等工具的具体命令、不同传输方式的元数据保留差别,以及我自己按用途分层的处理习惯。

图片信息到底藏了什么?EXIF、GPS、拍摄参数三层拆解,附6个查看和清理工具的实测

图片

起因:一张原图,把我表弟家的小区名送了出去

去年夏天我表弟在二手平台挂了一支旧镜头,为了让人看清镜身划痕,他没压缩,直接传了手机拍的原始 JPEG。第三天有人私信他,开口就说出了他住哪个小区。他一开始以为是熟人,聊了几句才反应过来——对方是纯陌生人,凭的就是那张照片自带的 GPS 坐标。

他把照片甩给我。我用 ExifTool 跑了一下,输出里 GPS Latitude 那一行是度分秒写法,大概是 31 deg 13' 47.62 这种格式,换算成十进制度以后,和我表弟家楼下那家便利店差不到 30 米。这份精度不是摄像头本身的锅,是手机拍照时同时向系统要了 GPS 定位,顺手把结果写进了 JPEG 的 APP1 段。

那次之后我才发现,我虽然天天跟图片打交道,但对图片信息这四个字理解得很浅。网上一搜,十篇有九篇在教你怎么删 EXIF,可删 EXIF 只是最表面的一层活儿。

图片

我自己总结的三层模型:像素层 / 元数据层 / 语义层

我把一张照片包含的信息分成三层。这套分法不是什么标准定义,是我自己画草图时顺出来的,但用起来挺顺手。

第一层,像素层。 一张 4000×3000 的手机照片有 1200 万个像素点,每个点 RGB 各 8 bit,原始数据大约 1200 万×3 字节,也就是 34.3 MB,压成 JPEG 之后通常剩 3 到 5 MB。这层不写坐标、不写机型,但它老老实实记下了你拍了什么:窗外的招牌、停在楼下的车牌、工牌上的名字、显示器上一整页没关的文档。我见过有人发工位照,画面右下角反光的屏幕里,能读出一份内部排期表的标题和三个日期。

图片

第二层,元数据层。 EXIF、IPTC、XMP 都住在这层。我用 ExifTool 12.76 读一张 iPhone 15 Pro 拍的 HEIC,能吐出来 200 多个字段:拍摄时间精确到毫秒、机型、镜头型号、光圈 f/1.78、快门 1/120 s、ISO 64、等效焦距 24 mm,再往下是 GPS 经纬度、海拔、当时移动速度、镜头朝向。厂商还会塞私货,比如佳能机身的 ShutterCount(快门次数),很多人出二手相机时忘了这行数字会出卖真实快门数——买家拿它跟卖家口述的数字一对,差个几万次就尴尬了。

第三层,语义层。 这层删不掉,也没法用工具清理。AI 现在扫一眼像素就能推断:大概在哪个纬度拍的(看植被类型、光照角度、建筑风格)、招牌上写的是哪国文字、拍摄者大概什么身高(靠透视和视角)。GeoGuessr 上那帮人靠一棵树的品种就能锁定国家,用的就是这层功夫。第二层是写死的数字,第三层是算出来的推论,后者永远比前者更难防。

三层里,最难处理的是第一层和第三层,最容易处理的偏偏是第二层,也就是所有人都在讲的那一层。这个错位,我觉得是现在讨论图片隐私时最大的误区。

查和清:工具清单 + 不同平台的行为差别

图片

先说查看。桌面端我首选 ExifTool,命令行虽然反人类,但字段最全:exiftool -a -u -g1 文件名 会把所有组、所有字段全列出来,包括那堆藏起来的厂商私有标签。不想碰命令行,Windows 右键属性再点详细信息能看到常用字段;macOS 在预览里按 Cmd+I 打开显示检查器也行,但这两个方式都显示不全,尤其看不到 GPS 之外的那些。网页端我常用 Jeffrey's Exif Viewer,可以只上传元数据做预览,不用把整张图交出去。

按场景再细分一下:批量排查,比如要发几百张图,用 ExifTool,一条 exiftool -r -csv . > meta.csv 把整个文件夹的元数据导成表格;单张精查想确认有没有藏坐标,macOS 预览配网页查看器对照着看;验证清理效果,清理完再跑一次 ExifTool,数还剩几个字段。

清理这块有个坑,不同平台的默认行为完全不一样。我拿安卓和 iOS 各一台机器在 2024 年下半年试过一轮,大致印象是:微信里发普通图片会二次压缩,长边一般压到 1280 px 左右,文件体积掉到 100 到 300 KB,元数据基本被剥干净;发原图时保留的字段会多一些,但 GPS 这类敏感字段各家版本的策略并不统一,最靠谱的做法还是自己用 ExifTool 验一遍。

图片

至于邮件附件、U 盘、网盘直传,默认全都是原样搬运,EXIF 一个字节不动。所以真正危险的反而不是社交平台,是那些你以为是私密通道、结果什么都没处理的地方。我自己踩过一次:用邮件给客户发原片,顺手把带 GPS 的版本发过去了,好在是熟人,提醒我删掉重发。

清理工具我自己在用的几个:

  • ExifTool:exiftool -all= -overwrite_original 文件名,注意 -all= 会连色彩配置文件一起清掉,如果在意色准,改用 -gps:all= 这种精准清理;
  • ImageOptim(macOS):图形界面,勾上 Strip EXIF 就行,但处理 PNG 时要留意,tEXt 和 tIME 块是另一套机制,不一定会被一起清掉;
  • jpegoptim:命令行,--strip-all 一把梭,适合批处理;
  • Lightroom:导出时在元数据一栏选移出全部元数据,但这一步做完原图别留在同目录,不然等于没做。

我的一点私见:别指望工具,指望分层习惯

图片

我最后想说的可能有点扫兴:清理元数据这件事,防的是第二层,而第二层恰恰是三层里危害最小的一层。一个 GPS 坐标能定位到你家小区,但一张窗外的照片,人能看出你住几楼;一张随手拍的办公桌,AI 能读出屏幕上的项目代号。这两件事,ExifTool 一个都帮不了你。

所以我现在的习惯是按用途分层处理:要发公开平台的图,先想清楚这张图里有没有不该出现的东西,再谈清不清 EXIF;发给客户或者同事的工作图,保留拍摄参数反而有用,方便对方对色彩和曝光;只有关系到住址、证件、工牌这类,我会直接裁掉对应区域,不是打码,是裁掉,打码在某些算法下能被还原,裁剪不会。

回到开头我表弟那件事。他后来做的事其实很简单:把那张照片重新拍了一遍,在系统设置里关掉相机应用的定位权限,拍完再用 ExifTool 确认 GPS 字段为空。整个过程不到五分钟。但这五分钟之前,他需要先知道有 GPS 这回事——这就是我写这篇的原因。

标签: