你旅行回来,手机里有 200 张 HEIC 照片。Windows 笔记本打不开它们,你的 Web 应用需要 JPEG 格式,而你常用的照片分享网站彻底拒绝 HEIC。你可以一张一张地转:每张照片点四下,200 张就是 800 次点击,半个下午就没了。或者,你可以把文件夹拖进浏览器标签页,然后走开,让它自己跑完。
这就是批量转换工具存在的意义,而基于浏览器的版本和你用过的桌面软件工作方式不太一样。
批量转换到底是什么意思
批量转换不是"转换一张,重复一次"。真正的批量流水线会在可能的情况下并行完成三件事:
- 读取:解析每个文件的文件头确认格式。
.heic扩展名说明不了任何问题。流水线会读取前 12 个字节,检查ftypbox 中的heic/heif/mif1标记,在接触像素数据之前就把不匹配的文件剔除。 - 解码:将源文件解压为原始像素数据。对于 HEIC 文件,这意味着运行一个 WebAssembly 编译的 libheif。对于 JPEG 和 PNG,浏览器自带的解码器直接处理。这一步是 CPU 密集型的,也是整个流程的瓶颈。
- 编码:将原始像素数据压缩为目标格式。JPG 以 90 质量编码,PNG 使用 DEFLATE,WebP 使用浏览器内置编码器。
桌面软件做的是同样的三步。区别在于 CPU 周期烧在哪里:无论如何都是在你的机器上,但在浏览器标签页里,你不需要安装程序、不需要管理员权限、桌面也不会留下一堆临时文件。
支持的格式组合
并非每种格式都能很好地转换为另一种。真正有用的矩阵如下:
| 源格式 | 转 JPG | 转 PNG | 转 WebP | 转 ICO |
|---|---|---|---|---|
| HEIC | 支持 | 支持 | 支持 | 不支持 |
| JPG | 不支持 | 支持 | 支持 | 支持 |
| PNG | 支持 | 支持 | 支持 | 支持 |
| WebP | 支持 | 支持 | 不支持 | 支持 |
| BMP | 支持 | 支持 | 支持 | 支持 |
空白格子不是功能缺失。HEIC 转 ICO 是没有意义的转换:一张几 MB 的照片缩成 256×256 的图标文件,照片的一切特质都丧失了。工具直接跳过了这些无意义的路径。
PDF 页面走独立流水线。每一页通过 PDF.js 渲染到画布,然后编码为目标格式。我们的 PDF 转 JPG、PDF 转 PNG 和 PDF 转 WebP 转换器会自动批量处理所有页面。
操作步骤详解
1. 一次性全部拖入
打开转换器页面。从文件管理器里把一个文件夹拖到拖放区域。你也可以点击打开文件选择器然后选中多个文件,Ctrl+A 在这里也能用。
拖放区域直接从浏览器的拖拽事件中读取 FileList 对象。没有任何上传。文件以 File 对象的形式留在内存里——这些对象只是指向磁盘上 blob 的引用,包含文件名、文件大小和根据扩展名推测的 MIME 类型。
2. 让验证程序跑一遍
每个文件在解码前都会被检查。对于 HEIC 文件,验证器会像上面说的那样读取 ftyp box。对于其他格式,浏览器的 createImageBitmap() 要么成功(有效的图片),要么抛出异常(损坏的或被误标记的文件)。
无效文件会被标上红色标记并给出原因:"不是有效的 HEIC 文件"、"不支持的格式"、"文件超过 200 MB"。它们不会阻塞其他文件的处理。有效文件进入处理队列。
3. 选择输出格式
每个转换器页面面向特定的输出格式。如果你需要 HEIC 转 JPG,就用 HEIC 转 JPG 页面。需要 HEIC 转 PNG?用 HEIC 转 PNG。输出格式在每个页面上是固定的,这让界面保持简洁:没有下拉菜单,没有困惑。
质量设置因格式而异。JPG 提供质量滑块(10–100,默认 90)。PNG 始终是无损的,所以不需要滑块。WebP 的质量滑块行为与 JPEG 不同:WebP 的 80 大致相当于 JPEG 的 92,适用于照片类内容。
4. 等待(短暂的)
处理时间取决于三个因素:文件数量、文件大小和你的 CPU。一台现代 8 核笔记本大约每秒能处理 2–4 次 HEIC 转 JPG。200 张 iPhone 照片的文件夹不到两分钟就能完成。
每个文件通过 requestAnimationFrame 分片运行,这样界面始终保持响应。进度条显示的是文件级别的进度,不是字节级别的:每个文件走一格,无关大小。
5. 下载
你有两种选择:
逐个下载:每个转换后的文件单独下载。浏览器的下载管理器原生处理这个,到处都能正常工作。
ZIP 打包:所有转换后的文件打成一个 .zip。通过流式 ZIP 实现在内存中构建,文件即时压缩,不需要临时存储空间。
原始文件名保留,只改扩展名。IMG_4021.HEIC 变成 IMG_4021.jpg。
质量与体积的权衡
转换格式意味着要对文件体积做出选择:
| 转换 | 典型体积变化 | 质量说明 |
|---|---|---|
| HEIC → JPG (q90) | 约大 2 倍 | 正常缩放下视觉无差异 |
| HEIC → PNG | 约大 5–8 倍 | 无损,但对照片来说小题大做 |
| HEIC → WebP (q80) | 约大 1.2 倍 | 同等质量下比 JPEG 更小 |
| PNG → JPG (q90) | 约小 3–5 倍 | 透明区域变成白色背景 |
| BMP → JPG (q90) | 约小 10–20 倍 | BMP 存储原始像素,JPG 将其压缩 |
| JPG → PNG | 约大 5–10 倍 | 不会提升品质,只是阻止进一步劣化 |
HEIC 转 PNG 是人们经常踩的坑。HEIC 本身就是有损的。把有损格式转成无损格式并不能恢复画质,只是把当前状态冻结下来,文件体积大了 5 倍。对于要放到网页上的照片,HEIC 转 JPG 或 WebP 是诚实的路径。对于要进入编辑器处理的照片,PNG 有意义,因为它能防止后续保存时的代际损失。同样的逻辑适用于所有类似场景。参见我们的有损与无损压缩指南了解完整解释。
浏览器 vs 桌面 vs 服务器
| 浏览器端 | 桌面软件 | 服务器/云端 | |
|---|---|---|---|
| 安装 | 无需 | 下载 + 安装 | 无需 |
| 隐私 | 文件留在本地 | 文件留在本地 | 文件上传到服务器 |
| 速度 | WebAssembly(接近原生) | 原生 | 网络上传 + 排队 + 下载 |
| 批量大小 | 受内存限制(~500+ 文件) | 受磁盘限制 | 免费套餐通常设上限 |
| 更新 | 始终最新 | 手动更新 | 始终最新 |
对大多数人来说,浏览器端转换器处于最佳位置:无需安装、无需上传,而且速度足够快——在近五年内生产的任何设备上,与原生应用的差异几乎无法感知。
WebAssembly 这个细节很重要。HEIC 解码器是一个编译为 WASM 的 C 库(libheif),运行在沙箱中。它没有文件系统访问权限、没有网络访问权限,无法以任何方式把你的数据发送出去。浏览器在引擎层面强制执行这些边界,而不是在应用层面。更多架构细节参见我们的 WebAssembly 详解和浏览器隐私深度剖析。
批量转换什么时候会出问题
有几件事会让批量运行直接中断:
- 在错误的转换器里混入不同格式。 把 JPEG 拖进 HEIC 转 JPG 的页面。验证器会捕捉到这些文件并跳过它们。被拒绝的文件会有清晰的标签,你可以把它们重定向到正确的转换器。
- 超大批次导致内存耗尽。 处理两千张 2400 万像素的原始文件最终会撞上浏览器的内存限制。解决办法是把批次拆成几百张一份。对于典型的手机照片(1200 万像素、约 2 MB HEIC),每次跑 500+ 张毫无问题。
- Safari 的下载行为。 Safari 对并发下载的限制比 Chrome 或 Firefox 更严格。单个下载没问题。ZIP 下载彻底绕过了这个问题:一个文件,没有并发问题。
相关工具
本站每一个图片转换器都支持批量处理:
- HEIC 转换:HEIC 转 JPG · HEIC 转 PNG · HEIC 转 WebP
- JPG 转换:JPG 转 PNG · JPG 转 WebP · JPG 转 ICO
- PNG 转换:PNG 转 JPG · PNG 转 WebP · PNG 转 ICO
- WebP 转换:WebP 转 JPG · WebP 转 PNG · WebP 转 ICO
- BMP 转换:BMP 转 JPG · BMP 转 PNG · BMP 转 WebP · BMP 转 ICO
- PDF 页面提取:PDF 转 JPG · PDF 转 PNG · PDF 转 WebP
无需注册。没有按文件计费。拖入文件夹,下载结果即可。

