Want to convert HEIC on Linux? You are in good company, and also in for a tiny bit of terminal work. Most Linux distributions do not ship with HEIC support out of the box, so your image viewer probably greets iPhone photos with an error instead of a picture. The fix is a free, well-maintained library called libheif, and once it is installed, converting one photo (or a thousand) takes a single command.
Why Linux needs a little help with HEIC
HEIC is Apple’s implementation of the HEIF image standard, compressed with the HEVC codec. Most Linux distros leave that decoder out of the default install, partly for patent and licensing reasons around HEVC. So Eye of GNOME, gThumb, and friends simply do not know what to do with a .heic file.
libheif fills that gap. It gives you heif-convert, a command-line tool that turns HEIC photos into JPG or PNG files that every Linux app on earth can open. Let us get it installed.
Step 1: Install libheif on your distro
Open a terminal and run the line for your distribution:
Ubuntu, Debian, Linux Mint:
sudo apt install libheif-examples
Fedora (libheif lives in the RPMFusion repository because of those licensing quirks):
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install libheif libheif-tools
Arch Linux, Manjaro:
sudo pacman -S libheif
To confirm it worked, run heif-convert --version. If you get a version number instead of an error, you are ready.
Quick note on package names: on Ubuntu and Debian the converter tool comes in the libheif-examples package, while on Fedora it is in libheif-tools. Same program, different shelf label.
Step 2: Convert a single photo
Change into the folder with your photos and run:
heif-convert -q 100 photo.heic photo.jpg
That is it. The -q 100 flag sets maximum JPG quality. The -q scale runs from 0 to 100, and honestly anything from 85 to 95 looks identical to the original while keeping the file noticeably smaller. You can also convert to PNG the same way:
heif-convert photo.heic photo.png
Your original HEIC file is left untouched. A brand-new JPG appears next to it.
Step 3: Convert a whole folder at once
If an iPhone backup just dumped two hundred photos on you, loop through them with a one-liner:
for f in *.heic; do heif-convert -q 100 "$f" "${f%.heic}.jpg"; done
That converts every .heic file in the current folder to a same-named .jpg. Two things to watch for: Linux commands are case-sensitive, so if your files end in .HEIC (iPhones often capitalize the extension), swap heic for HEIC in the loop. And if your photos are scattered across subfolders, this recursive version finds them all:
find . -iname "*.heic" -exec heif-convert -q 100 {} {}.jpg \;
The no-terminal alternative: convert in your browser
Maybe you are on a machine where you cannot install packages, or you just do not feel like opening a terminal today. Fair enough. A free HEIC to JPG converter works in any Linux browser, no installation, no sudo, no package hunting. Drop your files in, download the JPGs, done.
This is also handy on locked-down setups, live USB sessions, and yes, even on a Chromebook, since the conversion happens entirely in the browser.
Prefer a GUI? GIMP and Krita have you covered
If the command line is not your thing but you can install apps, both GIMP and Krita can open HEIC files once libheif is present, and then you just use File, Export As to save a JPG. It works fine for a photo or two, but for bulk jobs the for loop above is dramatically faster than clicking through exports one by one.
Frequently asked questions
Why does my Linux image viewer show an error for HEIC files?
Most distros do not include the HEIC decoder by default, mainly because of HEVC licensing. Installing libheif adds the missing decoder, and viewers that use the standard image libraries can then display the files.
Does heif-convert keep my photo metadata?
Yes. heif-convert preserves EXIF data such as timestamps, camera settings, and GPS coordinates in the converted JPG, which is nice for keeping your photo library organized.
What quality setting should I use?
Use -q 100 if you want zero compromises and do not mind larger files. For everyday sharing and archiving, -q 90 gives you files that look identical while staying much smaller. The default is 92 if you skip the flag entirely.
Can I convert HEIC to PNG instead of JPG?
Yes, just change the output extension: heif-convert photo.heic photo.png. PNG files are larger but lossless, which can be handy if you plan to edit the photo further.
The loop says “no such file” but my photos end in .HEIC. What gives?
Case sensitivity. Use *.HEIC and ${f%.HEIC}.jpg in the loop instead of the lowercase versions. iPhones commonly save extensions in all caps.
Is there a way to do this without installing anything at all?
Yes, a browser-based converter does the whole job with zero installation. It is the fastest option on shared machines, live USBs, or any system where you would rather not touch the terminal.
Converting HEIC on Linux looks intimidating for about thirty seconds, then it becomes a one-line habit. Install libheif once, and from then on your iPhone photos are one command away from being perfectly ordinary JPGs. And if you ever open HEIC on Windows 7 or another system, the same idea applies: either add the missing decoder, or convert once and stop thinking about it.
Leave a Reply