大概两年前我帮一个朋友整理旧照片,她让我把所有图片按日期排好,顺便删掉那些明显拍糊的。我习惯性地打开文件夹,设置里选择“详细信息”列,结果数千张照片里有一批文件既无法显示拍摄日期,分辨率信息也不正常。朋友说这些图是当年从QQ空间转存回来的,她也不记得原图在哪。为了抢救这堆文件,我花了一晚上研究EXIF,也是从那之后我养成了凡是批量处理照片前先检查元数据的习惯。
EXIF全称是Exchangeable image file format,它不只是记录光圈快门ISO,还会塞进相机序列号、镜头信息、拍摄时间甚至GPS坐标。举个具体的例子,我用手机拍的普通照片,一张JPEG里通常包含大概680到980个字节的元数据块。别小看这几百字节,在图片以亿计的图库里,提取这些字段后就可以做跨时间跨设备的溯源分类。很多人以为把图片文件名改成“2025_01_17_太阳”就安全了,实际上如果不清除EXIF,图片内部还是写着原始拍摄时间、设备型号和GPS位置,甚至有些机型的序列号也直接埋在文件头里。
不夸张地说,元数据是一张照片的“指纹”。我去年写了一个批量扫描本地图片的小脚本,扫出来自己十年前的旧照片里,有接近38%的照片保留了GPS信息,包括在家里、公司和常去的餐厅附近拍摄的。这些照片如果被老式网盘自动备份后分享出去,等于在公共网络里抛出了一份生活轨迹图。更麻烦的是,很多平台在转发时不抹除元数据。我测试过某主流聊天软件在PC端发送原图时,EXIF完好无损;发送“高清”压缩图时只剔除了部分字段,但拍摄时间仍然保留。同样的逻辑,做图片稿件或版权举证的人会利用元数据鉴定某张图是否被后期过、原图出自哪台设备、甚至追踪到具体编辑软件版本。Adobe Lightroom保存的图片会写入处理软件信息,部分相机在jpeg里备注的场景模式,可以间接反映出摄影者当时的拍摄意图。
如果你只想快速查看单张图片的元数据,Windows上最简单的方法不是装软件,而是直接右键图片,点属性,切到“详细信息”标签页。这里面能看见相机品牌、型号、光圈值、焦距、曝光时间,甚至还有35mm等效焦距和场景拍摄类型。Mac用户可以用预览工具打开图片,按Cmd+Shift+I,或者用系统自带的“显示简介”里的“更多信息”面板查看。命令行控的话,Windows上用PowerShell的一条命令也能搞定,例如:$img = Get-Item ./photo.jpg; $shell = New-Object -ComObject Shell.Application; $folder = $shell.Namespace($img.DirectoryName); $folder.GetDetailsOf($folder.ParseName($img.Name), 18)——这串代码能直接输出拍摄时间,省得一张一张右键点。
批量整理图片的需求更大的场景其实是“去隐私化”。我自己的处理方案是:手机照片以原图形式导出后用Adobe Bridge或XnView MP做批处理,把EXIF里的GPS和软件版本字段勾掉,只保留拍摄日期和色彩描述文件。XnView MP的操作路径是对选中图片右键点“元数据-更新”,在弹出的窗口里去掉不想保留的项目,注意一定要把“覆盖已存在值”勾上,否则早已写入的信息不会被清除。另外一个硬核工具是exiftool,这是命令行的元数据手术刀。比如你想删除文件夹里所有jpg的GPS信息但保留其他元数据,开一个终端在图片目录下执行exiftool -gps:all= *.jpg即可。忘写参数里的-all=就完了,它会把ICC色彩配置文件也一并干掉,图片颜色可能直接偏色。这个坑我踩过,那一次处理了三百多张图,回头预览时发现所有人物的肤色都变得灰绿,最后不得不从备份里恢复。
关于图片信息还有一点容易被忽略:元数据不一定都是坏东西。对档案工作者和纪实摄影师而言,EXIF是“诚实证明”的一部分。我在参与一个本地社区影像整理项目时,靠照片里记录的原始拍摄时间纠正了大量被手机相册粗暴重命名的文件,还通过镜头焦距和光圈值判断出同一场景的连拍顺序。整理时可以按“厂商-机型-镜头-拍摄年份”的层级来建文件夹,这种结构比按事件名称分类稳定得多,因为事件是主观的,而设备参数是客观的。如果一天拍完的图要发社交媒体,我现在的习惯是留存原始文件到本地硬盘,然后导出两份副本:一份保留完整元数据用于归档,另一份清空所有可识别个人信息的用于分享。隐私和安全不应该靠平台自觉,元数据的控制权本来就应该在按下快门的那个人手上。