照片里的EXIF到底藏了什么?怎么查、怎么删、哪些删不掉(附命令和踩坑记录)

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

摘要:一张随手发的原图能暴露你站在哪个路口。这篇不讲概念,按文件系统层、格式层、EXIF、IPTC/XMP、MakerNotes 五层拆开讲照片里到底存了什么,附 Windows/macOS/iPhone 的查看步骤、ExifTool 的具体命令、三种删除方式的对比表,以及缩略图、ICC 色彩描述文件、厂商私有块这三个删不干净的坑。

去年在闲鱼卖手机,被人一句话问出了位置

图片

去年秋天我出一台 iPhone 13,买家说发原图看看边框有没有磕碰。我蹲在小区门口拍了三张,微信里特意勾了「原图」发过去。

对方过了几分钟回我:你家是不是在 XX 路那个地铁口南边?

我盯着屏幕愣了半分钟。那三张照片的 EXIF 里,GPSLatitude 和 GPSLongitude 老实到小数点后十位,还有个 GPSHPositioningError 告诉我定位误差大概在 12 米。

后来我把图扔进 ExifTool 数了数,一张照片带了 187 个标签,我认识的不超过 20 个。

这事之后我干了三件事:关掉手机相机的定位权限、把之前发过的图删了一批、开始认真研究图片信息到底是怎么存的。下面这些是我这一年踩出来的,不是抄说明书。

先把「图片信息」拆成五层,不然永远说不清

大部分人一提高级图片信息就只说 EXIF,其实至少分五层,删的时候也是这五层各自为政。

第一层是文件系统给的:文件名、创建时间、修改时间、文件大小。这层最简单,但麻烦在于「修改时间」经常被系统改掉——你把图从 SD 卡拷到电脑,某些工具会把修改时间刷新成拷贝那一刻。

图片

第二层是图片格式自带的:JPEG 的宽高、PNG 的 pHYs 块(里面是 DPI)、色深、是否隔行扫描。用 identify -verbose a.jpg 能看到一大串。

第三层才是 EXIF,拍摄参数 + 时间 + GPS + 一张内嵌缩略图。

第四层是 IPTC 和 XMP,图库、编辑、版权信息住在这儿,Adobe 系列软件特别爱往里写东西,一份 XMP 能写到几十 KB。

第五层是 MakerNotes,厂商私有块。佳能的快门次数、索尼的镜头校正数据都在里面。二手相机验机就是靠 exiftool -ShutterCount 这一下。

EXIF 里的字段,我念一遍你可能就不淡定了

一张 iPhone 在白天拍的 HEIC,EXIF 部分我见过 12KB 到 30KB。里面有什么:

Make(Apple)、Model(iPhone 15 Pro)、LensModel(主摄 24mm f/1.78)、LensSerialNumber、BodySerialNumber、FNumber、ExposureTime、ISO、FocalLength、FocalLenIn35mmFilm、DateTimeOriginal、OffsetTimeOriginal(时区,+08:00)、GPSLatitude、GPSLongitude、GPSAltitude、GPSImgDirection(镜头朝向)、GPSSpeed。

还有一堆你根本没点过同意就被记录的:ExposureProgram、MeteringMode、WhiteBalance、Flash、SceneCaptureType、ColorSpace、ExifVersion。

图片

有个坑我踩过:EXIF 里的时间是 2024:05:12 18:33:07 这种格式,年月日用冒号分隔,不是横杠。我写脚本批量处理过一箱照片,用最常规的日期解析器去读,全部报错,查了半天才发现是这一年月日之间冒号的锅。

另外注意 OffsetTimeOriginal,它和 DateTimeOriginal 是分开存的。你出国玩没改手机时区,回来整理照片时间线就是灾难。

查看:系统自带的够看个大概,ExifTool 才是照妖镜

Windows 上右键 → 属性 → 详细信息,能看到相机型号、光圈、ISO,往下滚有 GPS 那一栏。但如果你装了某些国产安全软件,这个面板的字段顺序和内容可能被改过,我见过定位那一栏直接消失的。

macOS 用「预览」打开图,按 ⌘I 调出检查器,上面有 GPS 标签页,右下角有个「移除位置信息」的按钮。这是我认为 macOS 做得最实在的一个小功能。

iPhone 更简单粗暴一些:相册里往上滑只能看个大概,想要原始数值还是得导出来用工具读,手机自己不会把十进制度数给你看。

命令行的话,装 ExifTool(macOS 是 brew install exiftool,Windows 下载 exe 塞进 PATH 就行)。

exiftool -a -G1 -s IMG_2033.HEIC

图片

-G1 是按组显示,-a 显示重复标签,-s 用标签名而不是描述。这三个参数一起用,你才会发现同一张图里其实有两个 DateTimeOriginal 和两个 CreateDate,来自不同组。

只想快速看关键的:

exiftool -GPSPosition -Model -LensModel -DateTimeOriginal *.jpg

删除:三种做法,坑全在细节里

命令行最干净:

exiftool -all= -overwrite_original ./IMG_*.jpg

只想清 GPS 不清别的(比如你要投稿,得保留版权信息):

exiftool -gps:all= -overwrite_original *.jpg

图片

-all= 之后有几个东西经常还在。

第一个是内嵌缩略图。EXIF 里那张 160×120 的小图是单独一段,某些老工具删了主数据没删它,我见过同行的「已脱敏」照片,用 exiftool -ThumbnailImage -b 一导,原图内容照样出来。补刀:exiftool -ThumbnailImage= -overwrite_original *.jpg

第二个是 ICC 色彩描述文件。按我实测的规则 -all= 一般不会把它带走,想要一起清得单独加参数。但我不建议你清——ICC 没了,广色域照片放到 sRGB 屏幕上会偏色,一张红裙子能变成暗橘色。图片格式的 -strip 参数也是同理,删得爽,颜色也跟着变。

第三个是厂商私有块和 XMP,Windows 那个「删除属性和个人信息」的按钮对它们的效果不太稳定。它是给你生成一个副本,删的是它能识别的那部分,我用 ExifTool 对比过几组,MakerNotes 有时候还在。所以别拿系统按钮当保命符,删完自己再用 ExifTool 读一遍。

做法 删得掉的 容易漏的 适合谁
exiftool -all= EXIF、GPS、IPTC、XMP ICC、偶尔漏 MakerNotes 批量、要可控
Windows 属性面板 常见 EXIF 字段 MakerNotes、XMP 偶尔发一张图
macOS 检查器移除位置 只删 GPS 其它一律保留 只想藏位置
在线脱敏网站 页面声称全删 你的图得先上传 我不推荐

最后一行我态度很明确。你为了不让照片传到某个平台,先把照片传到另一个陌生网站的服务器上,这个逻辑我怎么想都觉得别扭。而且你没法验证它删没删。

有些照片,我劝你别删干净

前面说得像元数据全是敌人,其实不是。

图片

图库投稿、摄影比赛,IPTC 里的作者、版权、关键词是硬要求,删了等于白投。我用 Lightroom 管理照片,拍摄时间就是整个目录的骨架,-all= 一跑,时间线全塌,几千张图排序全乱。

还有法律和纠纷场景。我朋友做过一次交通事故的取证,对方不认,最后拿出手机原图的 DateTimeOriginal 和 GPS 才对上。这种时候元数据是证据,不是隐私。

所以我的做法是分开存:一份带完整 EXIF 的原始归档(只在自己硬盘里),一份脱敏副本用于对外发送。不是一刀切。

一个可能跟主流教程不太一样的结论

很多教程教你把照片的 GPS 删干净就算安全了,我不太认同这个思路。

删除是「事后补救」,而且补不彻底。传感器噪声、CMOS 上的坏点、镜头上那颗灰、甚至画面里出现的一角窗帘,都能把你认出来,这些跟 EXIF 一点关系都没有。

真正省事的做法是从源头关掉:iPhone 走「设置 → 隐私与安全性 → 定位服务 → 相机 → 永不」,新拍的照片从一开始就不写 GPS,分享的时候也不用再折腾。Android 类似,在相机 App 的权限里把位置关掉。

至于已经拍好的那批老图,我还是建议用 ExifTool 批量过一遍,一条命令的事。但删完记得用读取命令复查一次——不看一眼就相信工具,是我这一年学到最贵的一课。

标签: