手机照片里藏了多少信息?我扒完3000张照片的EXIF,发现几个想不到的坑

关键词:图片EXIF信息,照片位置信息怎么清除,ExifTool使用教程,图片压缩画质对比,照片元数据隐私

摘要:用ExifTool把自己3000多张照片的元数据完整跑了一遍,实测微信、微博、小红书、Telegram五条传图路径的EXIF保留情况,附各平台压缩后的参数对比和批量清除坐标的命令。也聊一个不太主流的观点:元数据不全是洪水猛兽。

起因挺蠢的:我在二手平台卖一支镜头

图片

去年年底我把用了三年的索尼 FE 55mm F1.8 ZA 挂到二手平台,随手拍了几张实物图传上去,背景就是一堵白墙加一块灰布。第二天有个买家私信我,问「哥们你这镜头是不是在XX路那边拍的」。我当时整个人是懵的,标题详情页里我一个字都没提地址。

缓了半天才反应过来是照片自带的 GPS 坐标。那会儿手机相机的定位权限一直开着,拍完直接上传,平台侧也没帮我抹掉。这事之后我把手机和硬盘里的照片全拉出来过了一遍,用 ExifTool(Phil Harvey 写的命令行工具,Windows/macOS/Linux 都能跑)做了个统计,结果比我预想的复杂得多。

exiftool -r -csv -GPSLatitude -GPSLongitude -DateTimeOriginal -Model ~/Pictures > meta.csv

这条命令递归扫完,3000 多张里 1800 多张带坐标,时间跨度从 2019 到 2024。有几张我自己都忘了在哪拍的,它记得比我还清楚。

图片

一张 JPEG 里到底塞了多少东西

大部分人以为照片就是「像素加颜色」,其实 JPEG 的文件结构里,图像数据前面有一段 APP1 段专门放 EXIF(Exchangeable Image File Format),字段数量能上百。我那台 A7M3 拍的 RAW 转 JPEG,ExifTool 默认列出来 180 多行,挑几个平时没人注意但很要命的:

  • LensModel 镜头型号。我卖镜头那次它连「FE 55mm F1.8 ZA」都写进去了,配图一看就知道不是套头拍的
  • Software 后期软件和版本号。用什么版本修图、什么时候修的,一条不落
  • Orientation 竖拍横拍。老浏览器不认这个字段,图就躺倒
  • ThumbnailImage 这个是真坑。很多相机和手机在 EXIF 里额外塞一张 160×120 的缩略图,你把主图裁掉或者涂黑,缩略图那版还是原样
  • MakerNotes 厂商私有段,佳能尼康索尼各写各的,快门次数、对焦距离、机身序列号都可能在里面

让我最意外的是缩略图那条。几张做过打码处理的截图,跑 exiftool -b -ThumbnailImage a.jpg > thumb.jpg 把缩略图单独提出来一看,打码之前的内容清清楚楚。我猜不少人跟我一样,以为涂黑了就完事了。

图片

各平台传一遍,结论有点反直觉

我拿同一张带 GPS 的测试图,分别走了微信、微博、小红书、Telegram、邮件附件五条路径,每条都用 ExifTool 验一遍。测试时间是 2024 年 3 月,App 版本迭代快,现在可能已经变了,建议自己复测:

传图路径 GPS 是否保留 其余 EXIF 长边 文件体积
微信「原图」 保留 基本保留 原尺寸 约 3.2MB
微信普通发送 剥离 部分保留 约 1280px 约 180KB
微博 剥离 剥离大部分 约 2000px 约 500KB
小红书 剥离 剥离 约 1440px 约 300KB
Telegram 文件模式 保留 保留 原尺寸 原大小

关键点就是那行「微信原图」:越原图越危险。发原图本来是为了保画质,代价是坐标、镜头型号、精确到秒的拍摄时间全套跟着走。反过来,压得最狠的那条路径,隐私反而最安全,画质也是最惨的。很多人为了保画质无脑勾原图,其实在公开平台发图的时候,这笔账得反着算。

压缩这事的信息损失,比多数人想的重

图片

EXIF 是「附加信息」,还有一层是图像本身携带的信息量,这俩经常被混着说。我用同一张 6000×4000 的 RAW 导出 TIFF,再用不同质量因子转 JPEG,拿 ffmpeg 自带的 ssim 滤镜跟原图比:

ffmpeg -i compressed.jpg -i original.tiff -lavfi ssim -f null -

q=95 的时候 SSIM 大概 0.99 出头,文件 6MB 左右;q=75 掉到 0.97 上下,文件 1.2MB 左右;q=50 只剩 0.93 左右,放大到 100% 看天空渐变,能看到明显的方形色块也就是 banding。真正有意思的是 q=75 到 q=85 这一段,肉眼基本分不出来,体积差了将近一倍,我个人觉得这是性价比最高的一段区间,平时存网图都丢这个范围里。

手机厂商那套「智能压缩」其实也在这条曲线上做取舍,只不过它经常在你不注意的时候选了激进的那一端。iPhone 默认拍 HEIC,同一个场景比 JPEG 小差不多一半,代价是部分老软件读不了,另外一些平台在转码的时候会把 HEIC 里的深度信息和实况照片数据一起丢掉,这个损失是不可逆的。

图片

我现在自己的处理流程

没什么高大上的方案,就是几条用顺手了的习惯:

  1. 发公开平台之前先批量清坐标:exiftool -GPS:all= -overwrite_original *.jpg
  2. 截图或者带敏感内容的图,直接 exiftool -all= -overwrite_original x.jpg,清完打开看一眼缩略图有没有残留
  3. 需要保留拍摄参数求点评的,单独导一份带 EXIF 的留着自己看,公开那份清干净
  4. iPhone 走 设置 → 隐私与安全性 → 定位服务 → 相机,把精确位置关掉,只给大致位置或者干脆不给

第 2 条里那个「再打开看一眼」是我吃过亏之后加的。有次图省事用某个在线去元数据网站处理,界面提示成功,下载回来一验 GPS 还在,不知道是缓存还是压根没处理。从那以后我不信任何在线工具了,宁可本地跑命令,多按两下键盘的事。

图片

一点不太主流的看法

网上讲 EXIF 隐私的文章基本一个调子:元数据是洪水猛兽,赶紧全删。我不太同意。

对拍照的人来说,EXIF 是有价值的资产。我翻 2019 年那批照片,靠 DateTimeOriginalLensModel 才理清楚当时用的什么镜头、在哪拍的、什么时候按的快门,这些信息一旦被平台批量抹掉就永远找不回来了。微信普通发送会剥掉大部分 EXIF,这事从隐私角度看是好事,对我这种想回溯参数的人就是损失。所以我现在是本地留一份带完整元数据的原片,往外发的按场景决定,而不是无脑全清。

还有个容易被忽略的点:图片里的「信息」不只元数据。拍摄角度、背景窗户的反光、桌上一张快递单的边缘、镜子里映出的手机屏幕,这些视觉信息比 GPS 难清得多,也更难被发现。我那次卖镜头的照片,就算没有 GPS,背景那块灰布上的褶皱走向配合光线,认真的人也能推出个大概的室内朝向。现在我发图之前有个小习惯,把图缩到 30% 大小自己先看一遍——很多当时没注意的角落,缩图之后反而更容易跳出来。这个方法挺土,但比装一堆隐私工具管用。

标签: