跳到主要内容
Tooletto

HEIC 转 JPG

把 HEIC 和 HEIF 照片——iPhone 默认保存照片所用的格式——转换为 JPG 或 PNG。转换完全在你的设备上进行,照片不会被上传到任何地方。

  • 文件永不离开你的设备
  • 免费,无需注册
  • 无水印
  • 加载后可离线使用
Loading tool…

如何HEIC 转 JPG

  1. 1

    添加你的 HEIC 照片

    拖入一个或多个 .heic/.heif 文件,从剪贴板粘贴,或浏览选择它们。

  2. 2

    选择输出格式

    选择 JPG(文件更小,质量可调)或 PNG(无损)。JPG 是默认选项,在任何地方都能打开。

  3. 3

    下载结果

    每张转换完成的照片都会附带各自的下载按钮,随时可以下载。

HEIC 究竟是什么,Apple 为什么采用它

HEIC 全称高效率图像容器(High Efficiency Image Container),它是一种容器格式,用 HEVC(H.265)编码存储照片——这正是用于 4K 视频的同一种视频压缩标准,而不是那个诞生于 1992 年、老旧得多的 JPEG 压缩方案。HEVC 更精细的压缩技术,能用大约一半于同等质量 JPEG 的文件体积,表现出相同的视觉细节,这正是 Apple 从 iOS 11 和 macOS High Sierra 开始,把它设为 iPhone、iPad 和 Mac 默认照片格式的原因:典型的照片库占用的本地存储空间大幅减少,同步到 iCloud 的速度也更快,视觉质量上却看不出明显差异。

HEIC 还在一个文件里支持了 JPEG 从未拥有过的特性——图像序列(用于实况照片和连拍)、用于人像模式效果的深度数据,以及对透明度和更高位深更好的处理。从用户的角度看,这些都不需要一个新的文件扩展名——只是意味着相机应用开始生成一种在屏幕上看起来一模一样、底层结构却完全不同的文件。

这由此带来的兼容性缺口

JPEG 已经是网络和软件上照片的通用基准长达三十年,所以几乎所有接触图像文件的东西都支持它。相比之下,HEIC 的支持晚了十多年才出现,而且很不均衡:较新版本的 Windows 10/11 和 macOS 可以原生查看 HEIC(有时需要先安装一个免费的编解码器扩展),但较旧的 Windows 版本、除了最新旗舰机型之外的大多数 Android 手机、许多网页上传表单,以及相当一部分桌面软件,仍然只接受 JPEG 或 PNG。实际结果就是:一张 iPhone 照片在拍摄它的手机上打开得完美无缺,经过 AirDrop 或邮件发送之后,到了接收方那里却根本无法正常打开、上传或显示。

转换为 JPG(如果需要透明度或无损输出则转换为 PNG)能完全绕开这个缺口,因为这两种格式几乎在任何 HEIC 文件可能碰壁的地方都能被接受——代价是 HEIC 原本想要避免的那点体积增加,而对于分享或上传的少数几张照片来说,这几乎算不上什么实际问题。

这一切如何在浏览器中完全实现,不依赖服务器

解码 HEIC 通常需要一个获得授权的 HEVC 解码器,这正是早期基于网页的转换工具必须把照片上传到装有这种解码器的服务器上的原因。这个工具改用一个编译成 WebAssembly(WASM)的 HEIC 解码器——代码被编译成能在浏览器自身的 JavaScript 引擎里以接近原生速度运行的形式——并搭配一个能开启专门后台线程(Web Worker)的库,让解码过程不会让页面卡死。最终效果是:一种历来需要服务器端软件才能读取的格式,如今能够被解码、转换,并作为下载文件交还给你,而你的照片从未被传输到任何地方。

常见问题

为什么 iPhone 照片一开始就是 HEIC 格式?

Apple 从 iOS 11 开始把默认照片格式换成了 HEIC(高效率图像容器),因为它建立在更现代的 HEVC 视频编解码器之上,能在视觉质量相近的情况下,把文件体积压缩到 JPEG 的大约一半。这对存储空间和 iCloud 备份来说是实打实的好处,但 HEIC 从未成为一个真正通用的标准——大量 Windows 应用、较旧的 Android 手机,以及网页表单和上传控件,都只认识 JPEG 或 PNG,所以一张在拍摄它的 iPhone 上打开毫无问题的照片,到了其他地方却可能无法打开、无法上传。这个兼容性缺口正是这个工具存在的全部原因。

转换过程中我的照片会被上传吗?

不会。转换完全在你的浏览器内部完成,使用的是一个 WASM(WebAssembly)HEIC 解码器——照片的字节数据在你自己的设备上被解码、转换、重新编码,从不通过网络发送。真正会被下载的只有解码器本身,也就是你在一次浏览器会话中第一次使用这个工具时——这是转换代码的一次性下载,本质上和任何页面加载自己的 JavaScript 没什么不同,无论你是否选择照片,都会发生。你的实际图片永远不会离开你的设备。

转换后的照片和原图看起来会一样吗?

转换为 JPG 是一次有损的重新编码,和把任何照片另存为 JPEG 一样——质量滑块(默认 90)控制的正是这个取舍,数值越高保留的细节越多,文件也越大。转换为 PNG 则是无损的,代价是文件明显更大。至于 GPS 位置、相机型号和拍摄时间这类 EXIF 元数据:我们没有独立核实过底层转换库到底会保留哪些字段,与其许下一个我们并不确定的承诺,诚实的答案是有些元数据可能会保留下来,有些可能不会——如果保留特定的 EXIF 字段对你很重要,请在依赖结果之前检查一下下载的文件。

我可以一次转换多张照片吗?

可以——一次拖入最多 20 个 HEIC 或 HEIF 文件,每一个转换完成后都会出现在结果列表里,并附带各自的下载按钮,你不需要一张一张地转换。

为什么第一次转换需要花一点时间?

一次浏览器会话中的第一次转换需要加载 HEIC 解码器,这段代码比一般网页脚本要大得多,因为它包含一个 WASM 编译的图像编解码器。同一会话中之后的每一次转换都会明显更快,因为解码器已经加载好了。