heif-convert (libheif) — het snelste native hulpmiddel
heif-convert is een command-line hulpmiddel uit het libheif-project — de referentie-implementatie van het HEIF/HEIC-formaat. Het decodeert HEIC-bestanden native, zonder afhankelijk te zijn van ImageMagick-delegates of externe codecs. Dit is dezelfde bibliotheek die CleverUtils.com gebruikt op zijn backend-servers voor HEIC-verwerking, samen met ImageMagick voor nabewerking.
Installatie
Installeer de libheif-hulpmiddelen voor jouw platform:
# Ubuntu / Debian
sudo apt install libheif-examples
# Fedora / RHEL
sudo dnf install libheif-tools
# macOS (Homebrew)
brew install libheif
# Arch Linux
sudo pacman -S libheif
Verifieer de installatie:
heif-convert --version
Basisconversie
Converteer een enkel bestand naar JPG op kwaliteit 92:
heif-convert input.heic output.jpg -q 92
De -q-vlag stelt de JPEG-kwaliteit in (1–100). Kwaliteit 92 is het optimale punt — visueel identiek aan het HEIC-origineel terwijl de bestandsgrootte redelijk blijft.
Batchconversie
Converteer elk HEIC-bestand in de huidige directory:
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
heif-convert "$f" "${f%.*}.jpg" -q 92
done
De beveiliging [ -e "$f" ] || continue behandelt het geval dat geen enkel bestand aan een glob-patroon voldoet (bijvoorbeeld wanneer er geen .HEIC-bestanden met hoofdletters bestaan).
Nuttige vlaggen
| Vlag | Beschrijving |
|---|---|
-q <1-100> | JPEG-uitvoerkwaliteit. De standaard verschilt per build; specificeer altijd expliciet. |
--with-exif | Behoudt EXIF-metadata (cameramodel, GPS, datum/tijd) in het uitvoerbestand. |
-S | Extraheert alle afbeeldingen uit multi-image sequenties (bijv. Live Photos, burst-opnamen). |
-C <value> | Stelt de chroma-upsamplingmethode in: nearest-neighbor, bilinear. |
Tip: als je HEIC-bestanden afkomstig zijn van een iPhone en je GPS-coördinaten of camera-instellingen in de JPG-uitvoer wilt, voeg dan altijd --with-exif toe. Zonder dit laten sommige builds van heif-convert de metadata stilletjes vallen.
ImageMagick — het Zwitserse zakmes
ImageMagick is de meest geïnstalleerde beeldverwerkings-toolkit op Linux-servers. Als je systeem het al heeft, heb je mogelijk niets anders nodig — recente versies bevatten libheif als delegate voor HEIC-decodering. CleverUtils.com gebruikt ImageMagick voor naverwerking (formaat wijzigen, kwaliteit aanpassen, metadata-beheer).
Installatie
# Ubuntu / Debian (with HEIC delegate)
sudo apt install imagemagick libheif-dev
# Fedora
sudo dnf install ImageMagick libheif-devel
# macOS
brew install imagemagick
Controleer of de HEIC-delegate beschikbaar is:
magick identify -list format | grep -i heic
Als HEIC in de uitvoer verschijnt, kan ImageMagick je bestanden direct lezen.
Conversie van één bestand
magick convert input.heic -quality 92 output.jpg
Of met ImageMagick 7+, de kortere vorm:
magick input.heic -quality 92 output.jpg
Batchconversie
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
magick "$f" -quality 92 "${f%.*}.jpg"
done
Geavanceerde opties
Met ImageMagick kun je in hetzelfde commando formaat wijzigen, metadata verwijderen of de kleurruimte aanpassen:
# Convert and resize to max 2048px on the longest side
magick input.heic -quality 92 -resize 2048x2048\> output.jpg
# Convert and strip all metadata
magick input.heic -quality 92 -strip output.jpg
# Convert with specific colorspace
magick input.heic -quality 92 -colorspace sRGB output.jpg
FFmpeg — voor video-georiënteerde workflows
FFmpeg is in de eerste plaats een videogereedschap, maar kan HEIC-bestanden decoderen als het met HEVC-ondersteuning is gecompileerd. Dit is handig als FFmpeg al deel uitmaakt van je pipeline en je geen extra tools wilt installeren.
Installatie
# Ubuntu / Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg-free
# macOS
brew install ffmpeg
Conversie
ffmpeg -i input.heic output.jpg
Om de JPEG-kwaliteit in te stellen (FFmpeg gebruikt een schaal van 2–31, waarbij 2 het beste is):
ffmpeg -i input.heic -q:v 2 output.jpg
Batchconversie
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
ffmpeg -i "$f" -q:v 2 "${f%.*}.jpg" -y
done
De -y-vlag overschrijft bestaande uitvoerbestanden zonder te vragen.
Let op: de HEIC-ondersteuning van FFmpeg hangt af van hoe het is gecompileerd. Sommige Linux-distributiepakketten (bijv. ffmpeg-free op Fedora) missen HEVC-decodering vanwege patentkwesties. Als je een decoderfout krijgt, gebruik dan heif-convert of ImageMagick.
Python — pillow-heif + Pillow
Voor ontwikkelaars die HEIC-conversie nodig hebben binnen een Python-applicatie of -script voegt de bibliotheek pillow-heif HEIC-ondersteuning toe aan Pillow (PIL). Dit is handig om conversie te integreren in datapijplijnen, webbackends of automatiseringsscripts.
Installatie
pip install pillow-heif Pillow
Conversie van één bestand
from pillow_heif import register_heif_opener
from PIL import Image
register_heif_opener()
img = Image.open("input.heic")
img.save("output.jpg", "JPEG", quality=92)
Batchconversiescript
import os
from pathlib import Path
from pillow_heif import register_heif_opener
from PIL import Image
register_heif_opener()
input_dir = Path("./photos")
output_dir = Path("./converted")
output_dir.mkdir(exist_ok=True)
for heic_file in input_dir.glob("*.heic"):
img = Image.open(heic_file)
jpg_path = output_dir / f"{heic_file.stem}.jpg"
img.save(jpg_path, "JPEG", quality=92)
print(f"Converted: {heic_file.name} -> {jpg_path.name}")
EXIF-gegevens behouden
from pillow_heif import register_heif_opener
from PIL import Image
register_heif_opener()
img = Image.open("input.heic")
exif_data = img.info.get("exif", b"")
img.save("output.jpg", "JPEG", quality=92, exif=exif_data)
De parameter exif geeft de onbewerkte EXIF-bytes door aan de JPG-uitvoer en bewaart camera-instellingen, GPS-coördinaten en tijdstempels.
macOS Terminal — sips (ingebouwd)
macOS bevat standaard sips (Scriptable Image Processing System). Het ondersteunt HEIC native omdat macOS de HEVC-codec meelevert. Geen installatie vereist.
Conversie van één bestand
sips -s format jpeg input.heic --out output.jpg
Batchconversie
mkdir -p converted
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
sips -s format jpeg "$f" --out "converted/${f%.*}.jpg"
done
Kanttekening: sips verwijdert het grootste deel van de EXIF-metadata bij formaatconversie. Als je GPS-coördinaten of camera-instellingen wilt behouden, gebruik dan heif-convert --with-exif of ImageMagick op macOS. Beide zijn beschikbaar via Homebrew.
PowerShell (Windows) — ImageMagick-lus
Op Windows biedt ImageMagick de meest betrouwbare command-line optie. Na installatie kun je PowerShell gebruiken voor batchconversie:
Installatie
- Download het Windows-installatieprogramma van
imagemagick.org/script/download.php(kies «Win64 dynamic»). - Voer het installatieprogramma uit en vink «Add application directory to your system path» aan.
- Open een nieuw PowerShell-venster en verifieer:
magick --version
Enkel bestand
magick convert photo.heic -quality 92 photo.jpg
Batchconversie
Get-ChildItem *.heic | ForEach-Object {
magick convert $_.FullName -quality 92 ($_.DirectoryName + "\" + $_.BaseName + ".jpg")
}
Dit converteert elk .heic-bestand in de huidige map naar JPG op kwaliteit 92. Oorspronkelijke bestanden blijven onaangeroerd.
Vergelijking van hulpmiddelen
| Hulpmiddel | Platforms | Batch | Kwaliteit ctrl | EXIF | Snelheid* |
|---|---|---|---|---|---|
| heif-convert | Linux, macOS | Ja | -q 1-100 | --with-exif | ~0,3 s / bestand |
| ImageMagick | Linux, macOS, Win | Ja | -quality | Standaard | ~0,5 s / bestand |
| FFmpeg | Linux, macOS, Win | Ja | -q:v 2-31 | Standaard | ~0,6 s / bestand |
| Python | Linux, macOS, Win | Ja | quality= | Handmatig | ~0,8 s / bestand |
| sips | alleen macOS | Ja | Beperkt | Verwijdert meeste | ~0,4 s / bestand |
| PowerShell | Windows | Ja | -quality | Standaard | ~0,5 s / bestand |
*Indicatieve tijden voor een iPhone 12 MP-foto (4032 × 3024) op moderne hardware. Werkelijke snelheid varieert met CPU, schijf-I/O en afbeeldingscomplexiteit.
Kwaliteitsinstellingen uitgelegd
Verschillende hulpmiddelen gebruiken verschillende kwaliteitsschalen. Zo krijg je gelijkwaardige uitvoer tussen hulpmiddelen:
| Doelkwaliteit | heif-convert / IM | FFmpeg (-q:v) | Python (Pillow) |
|---|---|---|---|
| Maximaal | -q 100 |
-q:v 2 |
quality=100 |
| Optimaal (CleverUtils) | -q 92 |
-q:v 3 |
quality=92 |
| Goed | -q 85 |
-q:v 5 |
quality=85 |
| Web-geoptimaliseerd | -q 75 |
-q:v 8 |
quality=75 |
Waarom kwaliteit 92? Dit is de instelling die CleverUtils.com in productie gebruikt. Bij 92 is de geconverteerde JPG visueel identiek aan het HEIC-origineel onder normale kijkomstandigheden. Hoger gaan (95+) doet de bestandsgrootte met 30–50 % toenemen zonder merkbare verbetering. Onder 85 worden compressie-artefacten zichtbaar in luchtverlopen en fijne texturen.
Geen zin in de command line?
Als je liever geen hulpmiddelen installeert, delegates configureert en shell-loops schrijft — de converterwidget bovenaan deze pagina doet hetzelfde in je browser. Upload een HEIC-bestand en ontvang binnen enkele seconden een JPG. CleverUtils.com gebruikt heif-convert + ImageMagick op zijn servers — dezelfde hulpmiddelen die in dit artikel worden behandeld, al geconfigureerd en geoptimaliseerd.