批量转换 HEIC 的三种办法
一两张照片随手转就行,几十上百张就得挑工具了。市面上能用的办法归成三类,它们在隐私、可控性和上手成本上差别很大 —— 选错了可能白忙一场。
路线一:浏览器里的在线工具
打开网页,把文件拖进去,转换完下载。这是上手最快的办法,不需要安装任何东西,Windows、Mac、手机上都一样。
但这里有一个必须先弄清楚的问题:照片有没有被上传。
很多在线转换站的做法是:浏览器把文件 POST 到它的服务器,服务器转完再传回给你。整个过程你看到的结果是一样的,但照片已经完整地经过了别人的机器 —— 而手机照片的 EXIF 里通常带着拍摄时间和 GPS 坐标。
判断方法很简单:打开浏览器的开发者工具(F12),切到 Network 面板,然后拖一张照片进去。如果看到一个体积和你照片差不多大的请求发出去,那就是在上传。整个过程只有几百字节的请求,说明是在本地处理。
本站走的是完全本地处理的路线:HEIC 解码用的是 WebAssembly 版本的 libheif,JPG 编码用浏览器自带的 Canvas 接口,全程没有后端接口,断网也能正常转换。技术细节写在 关于页。
路线二:命令行工具
如果你要处理几百上千张,命令行是唯一不累的办法。几个常用的:
macOS 自带的 sips:
for f in *.HEIC; do
sips -s format jpeg -s formatOptions 85 "$f" --out "${f%.HEIC}.jpg"
done
ImageMagick(跨平台,需自行安装):
magick mogrify -format jpg -quality 85 *.HEIC
命令行最大的好处是可控 —— 质量、尺寸、输出目录、文件命名规则全都能精确定义,而且可以写成脚本重复使用。代价是要接受一点点学习成本,另外 Windows 上需要先配好环境。
命令行方案全部在本地跑,隐私上和本地处理没有区别。
路线三:系统自带工具
Windows 装了 HEIF 图像扩展之后,「照片」App 可以打开 HEIC 并「另存为」JPG;Mac 上「预览」和「照片」也都能导出。
这条路线的优点是不用装任何额外软件(扩展本身算系统组件),公司电脑上也通常允许。缺点是逐张操作:打开、另存、选格式、选目录、确定,每张都要走一遍。十几张还能忍,上百张就是折磨。
适合的场景:只想把两三张照片发给别人,或者环境不允许安装任何第三方工具。
三条路线对比
| 对比项 | 在线工具 | 命令行 | 系统自带 |
|---|---|---|---|
| 上手成本 | 最低 | 较高 | 低 |
| 批量效率 | 高(一次选多张) | 最高(可脚本化) | 低(逐张) |
| 隐私 | 取决于实现,需自行核实 | 本地,无外传 | 本地,无外传 |
| 需要安装 | 不需要 | 可能需要 | Windows 需扩展 |
| 手机可用 | 可以 | 不可以 | 可以 |
| 参数可控性 | 中(质量、尺寸可选) | 最高 | 低 |
| 适合的数量级 | 十几到几百张 | 几百到几万张 | 一两张 |
怎么选
- 偶尔用、张数不多、换设备也要用 —— 用浏览器工具,但先确认它到底有没有上传照片。
- 要处理整个相册、或者每次都做同样的事 —— 学一条命令行,写成一个脚本,一劳永逸。
- 公司电脑不让装软件、只要转两三张 —— 系统自带工具最稳。Windows 记得先补 HEIF 扩展。
- 手机相册直接要转 —— 只有浏览器工具这一条路,iOS 和 Android 上都能用。
另外,无论用哪条路线,转换前都建议保留原始 HEIC。JPG 是有损格式,一旦只留下 JPG,后面每次编辑都会再劣化一次,而原始的 HEIC 是不可再生的。