怎么查看和删除照片里的位置信息(EXIF)?我拿同一张图传了 6 个平台,结果不一样

关键词:EXIF,图片元数据,删除照片位置信息,图片压缩,反向搜图

摘要:照片里藏着一整套你看不见的信息:拍摄坐标、机身序列号、精确到秒的时间。这篇讲清楚 EXIF 到底是什么、怎么查、怎么删,以及同一个「保护隐私」的动作在微信、微博、小红书、Telegram 上的实际差别有多大。

上周清硬盘,翻到 2019 年在一家咖啡馆随手拍的照片。顺手拖进 exiftool 瞄了一眼,前几行还是老熟人——相机型号、光圈、快门,看到 GPS 那两行我愣了一下:

图片

GPS Position   : 39 deg 54' 27.36″ North, 116 deg 28' 12.48″ East
GPS Altitude   : 43.2 m Above Sea Level
GPS Date/Time  : 2019:04:17 09:12:03Z

换算过来,是我当时住的那栋楼楼下,误差目测不超过 20 米。我不是没删过,我是从来没删过。照片从快门按下去那一刻,信息就写进去了:JPEG 文件里有一段叫 APP1 的区域,起始标记是 0xFFE1,紧跟一个 Exif 标识头。这段数据不参与显示,你在任何看图软件里都看不见它,但它跟着这张图走完了网盘、微信、U 盘、二手手机回收站的全过程。

图片

Exif 不是厂商发明的黑魔法,它有公开标准,编号是 CIPA DC-008-2019(对应 JEITA CP-3451C),字段上百个。除了刚才那些,还有机身序列号、镜头序列号、白平衡、测光模式、图像方向,有的手机甚至会写进人脸检测框的数量。机身序列号这个东西尤其要命,它是能把人和一台机器绑定的字符串——你在闲鱼买二手,卖家发来的所谓实拍原图里,可能就带着他另一批货的机器序列号。

先说怎么查。 Windows 上右键图片 → 属性 → 详细信息,往下拉能看到大部分字段,注意有些项是折叠的,要点开。macOS 用「预览」打开 → ⌘I 调出检查器 → 点那个「i」标签页,再切到 GPS,会直接给你在地图上打点。想看得全一点,装 ExifTool,命令行敲 exiftool 文件名 就全出来了,参数加 -gps:all 只看位置,-a -u 连隐藏和未知字段一起显示,-G 会在每个字段前面标出它属于哪一组(EXIF、XMP、ICC 分开看,这点很实用,因为很多平台删了 EXIF 却在 XMP 里留了一手)。

图片

再说怎么删。 三个层级的做法,按彻底程度排:Windows 是右键属性 → 详细信息 → 最下面「删除属性和个人信息」→ 选「从此文件中删除以下属性」→ 全选。macOS 用「预览」打开 → ⌘I → GPS 那一栏点「−」号,注意这只删位置,相机型号还在里面;要全删,就在导出时勾掉元数据,或者直接上命令行。命令行是最省事的:exiftool -all= photo.jpg 一刀切,想保留版权信息就加 --copyright(-all= --copyright photo.jpg),只想清坐标就 exiftool -gps:all= -xmp:geotag= photo.jpg。手机端:iOS 可以去 设置 → 隐私与安全性 → 定位服务 → 相机 → 选「永不」,以后拍的就不带坐标;已经拍了的,在相册里选中图片 → 分享 → 选项 → 关掉「位置」再发。安卓各家 UI 不一样,但基本都在相机设置的「保存位置信息」开关里,找不到就直接搜设置里的「位置」。

但现实里有个更省事的办法:让别人帮你删。 因为绝大多数平台在上传时会把图片重新编码,元数据在这个过程中就蒸发了。问题是,蒸发的程度各家差得很远。我在自己机器上(iOS 18.5 + 微信 8.0.56,截图对照 ExifTool 输出)拿同一张带 GPS 的照片轮着传了一遍,样本三张,不代表所有人的情况,但差别挺有意思:

图片

平台 发送方式 GPS 相机型号 拍摄时间
微信聊天 勾选「原图」 保留 保留 保留
微信聊天 普通图片 没了 有时还在 没了
微信朋友圈 直接发 没了 基本保留 没了
微博 网页上传 没了 保留 变成发布时间
小红书 App 发布 没了 没了 没了
Telegram 以「文件」发送 保留 保留 保留
Telegram 以图片发送 多数保留 保留 保留
iMessage / 邮件附件 直接发 保留 保留 保留

图片

同一张图,微信「原图」和 Telegram「文件」发出去,GPS 一丁点没少;走普通图片、丢微博、丢小红书,GPS 是没了,可相机型号经常还在。这个差别不是巧合,是编码参数决定的:微信普通图片会把 4032×3024 压到长边 1280 左右,一张 3.8MB 的变成 210KB 上下,这个过程用的是自家编码器,顺手把 APP1 段丢了——但它自己会往文件里塞新的东西,服务器生成的 XMP、上传时间戳、CDN 节点信息,有些平台还会塞用来追盗图的隐形水印。所以别把「平台帮我删了」当成隐私保护,你交出去一份信息,收回来一个被平台重新署名的文件。

这里说个我自己的看法,可能不太中听。大家聊图片信息,默认它是隐私问题,于是解法就是「删掉就好」。但真正在发生的事是信息主权在转移:平台一边帮你抹掉坐标,一边往文件里写自己的元数据。这意味着十年后你手里那张照片还算不算「原始文件」,可能得靠平台来证明;你拍的东西,可追溯性挂在别人的服务器上。这不是阴谋,是工程上顺理成章的结果,但它确实改变了「谁拥有这张图」这件事。我的习惯是,重要照片在本地留一份带完整 EXIF 的原始档(放加密盘),发出去的那份随便它怎么洗——原始档在我手上,主权就没丢。

图片

反过来用也一样成立。如果你想搞清楚一张图从哪来,EXIF 只是第一层,而且经常被清得干干净净。第二层是像素本身:JPEG 量化表、传感器噪点分布、镜头暗角,这些很难伪造得很干净。第三层是感知哈希,pHash、dHash 这一类,把图缩到 32×32、转灰度、做 DCT 变换,最后算出一个 64 位指纹,重新编码、加水印、调亮度都很难动摇它,这也是很多图库查重的底层逻辑。实际操作上有个顺序建议:先用 ExifTool 或在线查看器看元数据,没有就转去 TinEye 找最早上传的出处,Yandex 认人脸和场景特别强,Google Lens 擅长认物,找国内社交平台的老图,百度识图的命中率反而比前几个高。别指望一次搜到,一张图换两三个引擎来回比对是常态。

最后提一句我踩过的坑:网上那些「在线 EXIF 查看器」,你把图传上去的那一刻,元数据连同画面一起进了别人的服务器,有些站还会把图留在 CDN 上。真要查,本地装个 ExifTool,一行命令的事,别偷那个懒。

标签: