你发的原图可能暴露你家地址------聊聊图片 EXIF 隐私
前阵子看到一个帖子,有人在社交平台上发了张从家里窗户拍出去的风景照,配的"原图直出"。底下有人根据照片的 EXIF 信息拿到了拍摄地点的经纬度,然后在地图上定位到了具体的小区。
这不是段子。只要你用手机拍照,照片里默认就会记录拍摄位置(前提是你给了相机 App 定位权限)。这个信息存在照片的 EXIF 数据里,很多人发图的时候根本不会注意到。
EXIF 里都存了什么
EXIF(Exchangeable Image File Format)是嵌在 JPEG 和 TIFF 文件里的一段元数据。用手机拍一张照片,EXIF 通常会记录:
- 拍摄时间和日期
- 相机/手机型号
- 光圈、快门、ISO 等拍摄参数
- GPS 经纬度(如果开了定位)
- 照片方向(横拍还是竖拍)
- 有时候还有缩略图
你可以用 macOS 的"预览"打开一张照片,按 Cmd+I 看详细信息,GPS 标签页里就能看到经纬度。Windows 上右键文件 → 属性 → 详细信息,也能看到一部分。
对摄影师来说,EXIF 是个好东西------可以回顾拍摄参数、学习别人的设置。但对普通用户来说,EXIF 更像一个你看不见的信息泄露点。
哪些场景需要注意
社交媒体发原图。 微信、微博、Twitter 这些平台在上传时会自动压缩图片,压缩过程中 EXIF 信息通常会被剥离。所以发朋友圈其实还好。但如果你发的是"原图"------比如通过邮件附件、网盘链接、或者某些不压缩图片的平台(Telegram 默认发原图)------那 EXIF 就跟着过去了。
二手交易。 在闲鱼上卖东西,拍一张家里环境的照片当背景。如果原图上传,买家理论上可以从照片里拿到你的住址。
工作文档。 有些公司的内部系统上传文件不做 EXIF 清理。你拍了一张白板照片上传到项目管理系统,照片里可能包含了公司办公室的精确位置。
新闻和公关。 之前有媒体报道过,某些官方发布的照片 EXIF 里还带着编辑者的电脑用户名和软件序列号。虽然不是位置信息,但也属于不该暴露的内容。
怎么清除 EXIF
方法挺多的,看你的使用场景:
用命令行批量处理
如果你会用终端,ExifTool 是最全能的工具:
ini
# 清除单张照片的所有 EXIF
exiftool -all= photo.jpg
# 批量清除一个目录下所有照片
exiftool -all= -overwrite_original ./photos/
# 只清除 GPS 信息,保留拍摄参数
exiftool -gps:all= photo.jpg
macOS 上可以用 brew install exiftool 安装,Linux 各大发行版的包管理器里都有。
用 Python 脚本处理
如果需要在业务逻辑里自动清除 EXIF(比如用户上传头像的时候),Python 的 Pillow 库可以做到:
scss
from PIL import Image
def strip_exif(input_path, output_path):
img = Image.open(input_path)
data = list(img.getdata())
clean_img = Image.new(img.mode, img.size)
clean_img.putdata(data)
clean_img.save(output_path)
这个方法的原理是创建一个新的 Image 对象,只复制像素数据,不带元数据。简单粗暴,但有效。
用在线工具
不想装软件的话,在线工具也行。我自己在用的是 glazlo.com/remove-meta... 这个页面。它是在浏览器本地处理的------你选完文件,EXIF 信息直接在浏览器里被移除,处理完的文件不会上传到任何地方。
选它的原因很简单:我要清理的照片有些包含敏感内容(内部产品截图之类的),上传到第三方服务器我是不放心的。浏览器端处理就没有这个问题。
操作也简单,拖文件进去,点一下,下载处理后的文件。如果照片本身方向是对的(EXIF 里的 orientation 标记和实际像素一致),它不会重新压缩图片,只剥离元数据。如果照片方向不对(有些手机拍照后需要靠 EXIF 的方向标记来纠正显示),它会先把像素旋转到正确方向,然后再去掉 EXIF。这个细节处理得不错,有些工具剥离 EXIF 后照片就歪了。
手机端处理
iOS 上分享照片时可以选择"不包括位置信息"(在共享菜单顶部的选项里)。Android 上不同品牌的相册 App 处理方式不同,有的支持,有的不支持。
如果经常需要分享原图,建议装一个专门的 EXIF 清理 App,分享之前先过一遍。
几个容易忽略的点
PNG 没有 EXIF,但有其他元数据。 PNG 格式用的是 tEXt 和 iTXt chunk 来存储元数据,虽然不像 EXIF 那样包含 GPS,但可能有软件名称、创建时间等信息。如果你是截图分享,PNG 通常比 JPEG 安全,但不能完全放心。
WebP 和 HEIC 也有元数据。 这两种格式同样支持嵌入 EXIF。不要因为格式新就以为没有这个问题。
缩略图泄露。 有些相机在 EXIF 里会嵌入一张小尺寸的缩略图(thumbnail)。即使你把主图的敏感内容裁掉了,EXIF 里的缩略图可能还是原始构图。彻底清理的话要把缩略图也去掉。
"原图直出"不只是摄影圈的事。 任何你在网上分享的图片,如果不经过平台压缩(平台压缩通常会剥离元数据),就有可能带着 EXIF 信息。发给同事的工作照片、发给客户的样品图,都可能包含你不打算分享的信息。
一个建议
养成一个习惯:在把照片发到公开场合之前,先清理一下元数据。不需要每次都做------发给家人朋友的生活照问题不大,平台会帮你处理掉。但如果你的照片包含任何可能敏感的场景(家里、公司、孩子的学校),花几秒钟把 EXIF 去掉,不费事。
隐私这个东西,不是等到泄露了才重要。