How to Open and Convert HEIC Files on Linux
Published May 25, 2026
Linux handles HEIC files better than Windows in some ways and worse in others. The decoder is open source, free, and ships in most distro repositories. The frustration is that it is not installed by default on most desktop systems, and the package names, GIMP behavior, and Snap caveats are different on every distribution.
The library you actually need: libheif
Almost every HEIC tool on Linux is a wrapper around libheif, a C library maintained by Struktur AG. It handles both the HEIF container and the HEVC and AV1 codecs used inside it. Once libheif is on your system, GIMP, Krita, ImageMagick, digiKam, Shotwell, and Nautilus thumbnailers can all read HEIC.
On most distros libheif itself is in the main repository. Distribution policy on HEVC patents is what changes whether the codec actually decodes. Fedora, for example, used to ship libheif without HEVC; you needed RPM Fusion. As of 2024 the default Fedora package includes HEVC decoding thanks to upstream libheif using the patent-free dav1d for AV1 and openh265 for HEVC.
Ubuntu and Debian
On Ubuntu 22.04 and later, install libheif and the GIMP plugin in one shot:
sudo apt update sudo apt install libheif1 libheif-examples heif-gdk-pixbuf
libheif-examples gives you the heif-convert command. heif-gdk-pixbuf lets Nautilus and other GTK apps generate thumbnails.
Fedora
sudo dnf install libheif libheif-tools
On Fedora 39 and later this is enough for GNOME's image viewer and GIMP to read HEIC. If you want browser support for inline HEIC images in Firefox (it is gated behind a preference), set image.heif.enabled in about:config.
Arch and openSUSE
# Arch / Manjaro sudo pacman -S libheif # openSUSE Tumbleweed sudo zypper install libheif1 libheif-tools
Convert from the command line
The heif-convert tool converts a single file with one command:
heif-convert IMG_1234.HEIC IMG_1234.jpg heif-convert -q 95 IMG_1234.HEIC IMG_1234.jpg # custom JPEG quality heif-convert IMG_1234.HEIC IMG_1234.png # lossless PNG output
For a whole folder of iPhone photos:
for f in *.HEIC; do
heif-convert "$f" "${f%.HEIC}.jpg"
doneImageMagick 7 also reads HEIC if it was built against libheif. Check with identify -list format | grep -i heif. If HEIF is listed, you can do magick IMG.HEIC IMG.jpg like any other format.
GIMP, and the Snap problem
GIMP 2.10.2 and later support HEIC natively when GIMP is linked against libheif. The native distro packages on Ubuntu, Fedora, and Arch all have this working out of the box.
The Snap and Flatpak versions are where things get inconsistent. Several GIMP 3.0 Snap releases shipped without libheif baked in, so HEIC files appear as “unknown format” even though the same machine has libheif installed for everything else. If you hit this, uninstall the Snap and install the distro package, or use the Flatpak from Flathub which has tracked libheif more reliably.
When the browser is just faster
If you only need to convert one batch and you are not going to do this again next week, installing libheif and four helper packages just to get JPGs is overkill. A browser-based converter that runs libheif compiled to WebAssembly handles the same job locally, with no install and no upload. The conversion happens in the tab; the files never touch a server.
This is also the best option on Linux machines you do not control: shared lab machines, restricted work environments, Chromebooks running Crostini, or LiveCD sessions.
Frequently asked
Does Ubuntu's default image viewer support HEIC?
After installing libheif1 and heif-gdk-pixbuf, yes. The GNOME image viewer (Loupe on 23.10 and later, Eye of GNOME on older releases) will open HEIC files and show thumbnails in Nautilus.
Will heif-convert keep EXIF data?
Yes. libheif extracts the EXIF payload from the HEIC container and heif-convert embeds it in the JPEG output by default. Capture date, camera model, and GPS data are preserved.
Why is libheif sometimes installed but HEIC still fails?
Two common reasons. First, the application you are using (GIMP Snap, an old version of digiKam) was built without libheif at compile time and ignores the system library. Second, your libheif is present but does not have an HEVC decoder backend. Check with heif-info IMG.HEIC; if it reports “no HEVC decoder available” you need libde265, openh265, or ffmpeg as a decoder backend.
Can I convert HEIC on a headless Linux server?
Yes. Install libheif-examples on Debian-family or libheif-tools on Fedora-family and use heif-convert in a script. No display needed.
Skip the install and convert now
Our browser converter runs libheif locally in your tab. Works on every Linux distro, no packages, no upload.