为什么 Windows 无法打开我的 iPhone HEIC 照片?
Windows 需要两个独立的 Microsoft Store 组件来读取 .heic 文件。以下是每个组件的功能,以及如何在没有它们的情况下在浏览器标签中转换为 JPG。
将一文件夹的 iPhone 照片复制到 Windows PC 上,其中一半的文件表现得像是损坏的文件。照片应用程序抛出错误,文件资源管理器没有缩略图。图片本身没有问题。Windows 默认不带 HEVC 解码器,而 HEVC 是自 iOS 11 以来每个 .heic 文件中使用的编解码器,该格式在 2017 年成为相机的默认格式。
有两种解决方法。您可以安装 Microsoft Store 组件,让 Windows 学会读取 HEIC,如果您打算在本地继续处理这些文件,这样做是值得的。您还可以在浏览器标签中将照片转换为 JPG,完全不需要安装。我们构建了第二个选项:我们的转换器携带一个编译为 WebAssembly 的 HEIF 解码器,因此即使没有 Chromium 构建原生渲染 HEIC,Windows 上的 Chrome 和 Edge 也可以读取该文件。
为什么 Windows 无法打开我的 iPhone 照片?
HEIC 是一个 HEIF 容器,由 MPEG 标准化为 ISO/IEC 23008-12,开头的四个字节声明内部使用的编解码器。heic 品牌意味着 HEVC。将这四个字节更改为 av01,相同的容器就变成了 AVIF,这就是为什么其中一个可以在每个浏览器中播放,而另一个几乎只存在于 Apple 的生态系统中。Windows 默认没有 HEVC 解码器,因此照片、画图和文件资源管理器缩略图在同一文件上都因同样的原因失败。Firefox 在任何平台上也无法渲染 HEIC。Safari 17 可以。
两个细节让人惊讶。HEIC 通过辅助图像携带 8 位 alpha,因此并不总是不透明。它还将旋转和裁剪存储为指令,保持像素不变,这就是为什么转换后的照片有时在忽略这些指令的软件中横着显示。MDN 的图像格式指南 是关于哪个容器携带哪个编解码器的最清晰概述。
我需要哪两个 Microsoft Store 组件?
大多数人在这里停止。免费的 HEIF 图像扩展 包打开容器,这是每个论坛线程都告诉您安装的组件。单独使用它不会得到图片。HEVC 视频扩展 解码实际像素,它是一个单独的 Store 列表,Microsoft 收取费用以覆盖其自己的 HEVC 版权费。单独安装免费的组件,您仍然会得到您开始时的灰色框,这是让人感觉这是 Windows 错误的唯一原因,实际上这只是一个许可安排。
AVIF 在您的 PC 上有相同的问题,但解决方法不同。它需要 AV1 视频扩展,而仅有 HEIF 包无法覆盖它。caniuse 跟踪了浏览器方面的情况,自 2024 年 1 月 Edge 支持 AVIF 以来,这个问题已经解决。
如何在 Windows 上不安装任何东西将 HEIC 转换为 JPG?
打开 heic-to-jpg 并将文件拖入。转换器在 WebAssembly 中解析 HEIF 容器,使用与 Linux 发行版提供的相同 libheif 血统的构建,因此是否安装了 Store 组件对结果没有影响。批处理限制为 10 个文件和 50 MB。JPEG 默认以质量 85 输出,HEIC 携带的任何透明度都合成到白色上,因为 JPEG 在任何模式下都没有 alpha。
HEIC 在这里仅限解码。您可以将其转换为 JPG、PNG 或 WebP,工具集中没有任何内容可以将 .heic 写回。这是我们在 11 种格式中提供的 24 对转换中的三对。
我应该转换为 JPG、PNG 还是 WebP?
JPG 适用于必须在其他机器上打开的任何内容。如果照片要用于网站,则使用 WebP。PNG 保持无损,这使其成为编辑的正确中间格式,但不适合通过电子邮件发送,而 哪些图片属于这两种格式中的哪一种 是更长的答案。文件大小比格式名称所暗示的更不可预测。以下是一个 3840x2160 的源 JPEG,538.6 KB,经过我们的压缩器以匹配滑块值:
| 格式 | 滑块 80 | 滑块 63 | 编码速度 |
|---|---|---|---|
| JPEG | 286.1 KB | 未运行 | 瞬时 |
| WebP | 290.3 KB | 200.6 KB | 瞬时 |
| AVIF | 312.7 KB | 186.9 KB | 大约 10 到 11 秒 |
该表格看起来是反向的,直到您知道原因。JPEG 的滑块根据源文件自身的估计质量进行重新缩放,从其量化表中读取,因此一个 60 质量的源在滑块 80 下请求时,实际上是在以 48 进行编码。WebP 和 AVIF 则字面上理解这个数字。AVIF 在字节上获胜,但在时间上表现不佳,这对于网络资产来说是公平的交易,但对于 200 张假期照片来说则不太合适。
为什么 JPG 比我开始时的 HEIC 更大?
HEVC 内部编码在这方面比 JPEG 更优秀,匹配质量大约只需一半的字节,因此转换时文件增大是预期的。增长是正常的。将 JPG 通过 压缩器 处理后,您会恢复大部分:智能模式将 538.6 KB 的 texture.jpg 压缩到 286.1 KB,减少了 47%,没有调整任何设置。在同一文件上将滑块拖到 30 得到了 131 KB,减少了 76%,这对于群聊来说是可以接受的,但在 27 英寸的显示器上看起来明显粗糙。

为什么我拖入照片时没有任何反应?
将文件拖放到框中会保留浏览器报告为 image/* 的文件,而一个从未被教会关于 .heic 的 Windows 安装可能会为其提供一个空类型。请使用选择器。单击拖放区域会打开正常的文件对话框,该路径不会应用任何类型过滤器,因此 Windows 无法分类的文件仍然可以通过。如果您拖入 11 个文件或 60 MB,错误会在一秒内告诉您。
在计划批处理时,请注意每个工具的限制。转换器、压缩器和 调整大小工具 每次运行都接受 10 个文件和 50 MB。裁剪工具 和 图标生成器 每次只接受一个文件,最大 10 MB,因为两者都不适合批量处理。
是否有任何内容被上传?
没有。此应用没有 API 路由和服务器操作,每个网络请求都是同源资产,解码器和编码器的 WebAssembly 包也在其中。您的照片由标签中的 JavaScript 读取,不会传到其他地方。您找到的其他 HEIC 转换器则工作方式相反:文件会传输到服务器,在那里解码,并承诺在一到两个小时内删除它以覆盖其余部分。对于仍在 EXIF 中保留 GPS 坐标的相机胶卷,这种区别是有意义的。我们的 隐私页面 列出了我们收集的内容,即页面分析和关于您图像的任何信息。
接下来:打开 heic-to-jpg,将前十张照片发送过去,然后将 JPG 直接拖入 压缩器,再附加到任何内容上。如果您要发送整个相机胶卷,调整大小后再压缩的顺序可以使批处理符合 Gmail 的限制 是下一个要阅读的内容。两个浏览器标签,无需 Store 购买。