有人用 iPhone 给你发来一张照片。你在默认查看器里打开,结果是一个空白窗口,或"不支持的格式"报错。文件没问题,只是你的 Linux 发行版默认没有打包 HEIC 解码器。
解决办法通常归结为一个包。下面是在 Linux 上查看 HEIC 的三种方法,从命令行到一次性浏览器转换。
为什么 Linux 无法查看 HEIC
HEIC 是容器格式,内部是 HEVC 压缩的图像。大多数 Linux 发行版不打包 HEVC 解码器,原因和 Windows 一样:专利许可。所以编解码器存在,只是默认没开。
好消息是工具已经相当成熟。libheif 同时提供库和命令行工具,大多数发行版都干净地打包了它。
方法一:用 libheif 的 heif-convert(命令行)
最快的路子是 libheif 自带的 heif-convert 工具。装好它,然后转换文件。
Ubuntu 和 Debian:
sudo apt install libheif-examples
heif-convert photo.heic photo.jpg
Fedora:
sudo dnf install libheif-tools
heif-convert photo.heic photo.jpg
Arch:
sudo pacman -S libheif
heif-convert photo.heic photo.jpg
这会在你的 HEIC 旁边生成一个 JPG。要处理整个目录,循环遍历这些文件:
for f in *.heic; do heif-convert "$f" "${f%.heic}.jpg"; done
方法二:用支持 HEIC 的查看器
如果你更喜欢图形界面,选一个能直接读 HEIC 的查看器。
- gThumb 是一个轻量图片查看器,在大多数发行版上开箱即用地支持 HEIC。用你的包管理器装好,打开文件即可。
- 在 Ubuntu 上,安装
libheif1再加上新版 gThumb,通常就覆盖了大多数情况。 - ImageMagick 带 libheif 支持也能显示和转换,不过它更适合命令行。
如果装了 libheif 后你的默认查看器还是拒绝这个文件,像 gThumb 这样的查看器是可靠的选择。
方法三:在浏览器里转换(一次性)
当你只需要一个文件、又不想碰终端时,在浏览器里转换。我们的 HEIC 转 JPG 转换器 全程在你设备上运行:
- 放入文件。把 HEIC 拖进浏览器。
- 本地转换。libheif 的 WebAssembly 版本在你的机器上解码。不上传任何东西。
- 下载 JPG。在任何查看器里打开。
该用哪种方法
| 你的情况 | 最佳方法 |
|---|---|
| 命令行用户,单个文件 | 方法一,heif-convert |
| 一整个文件夹的照片 | 方法一,循环遍历文件 |
| 更喜欢图形界面 | 方法二,gThumb |
| 一次性,不想安装 | 方法三,浏览器 |
| 需要 PNG 或 WebP 输出 | 方法一或三,选格式 |
常见问题
Ubuntu 能原生打开 HEIC 吗?
默认不行。安装 libheif-examples(或 libheif1 加一个支持 HEIC 的查看器),文件就能正常打开。
哪个包提供 heif-convert?
Ubuntu 和 Debian 上是 libheif-examples。Fedora 把它拆成 libheif-tools,Arch 包含在 libheif 里。
能不转换就查看 HEIC 吗? 能。安装 libheif,用支持它的查看器(比如 gThumb)。查看器直接解码文件,不改变它。
转换 HEIC 会损失质量吗? JPG 是有损格式,但高质量下差别通常看不出来。分辨率保持不变。
小结
在 Ubuntu 和 Debian 上安装 libheif-examples、Fedora 上安装 libheif-tools、Arch 上安装 libheif,然后用 heif-convert 把照片转成 JPG。喜欢图形界面就选 gThumb。要处理单个文件又不想装任何东西,就在浏览器里转换。每条路径都能把照片从容器里拿出来,显示到你的屏幕上。