heif-convert (libheif) — das schnellste native Tool
heif-convert ist ein Kommandozeilen-Werkzeug aus dem libheif-Projekt — der Referenzimplementierung des HEIF/HEIC-Formats. Es dekodiert HEIC-Dateien nativ, ohne auf ImageMagick-Delegates oder externe Codecs angewiesen zu sein. Dies ist dieselbe Bibliothek, die CleverUtils.com auf seinen Backend-Servern für die HEIC-Verarbeitung verwendet, zusammen mit ImageMagick für die Nachbearbeitung.
Installation
Installieren Sie die libheif-Tools für Ihre Plattform:
# 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
Überprüfen Sie die Installation:
heif-convert --version
Grundlegende Konvertierung
Einzelne Datei in JPG mit Qualität 92 konvertieren:
heif-convert input.heic output.jpg -q 92
Der -q-Schalter legt die JPEG-Qualität fest (1–100). Qualität 92 ist der Sweetspot — visuell identisch zum HEIC-Original bei vernünftiger Dateigröße.
Batch-Konvertierung
Jede HEIC-Datei im aktuellen Verzeichnis konvertieren:
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
heif-convert "$f" "${f%.*}.jpg" -q 92
done
Der Schutz [ -e "$f" ] || continue behandelt den Fall, dass keine Dateien auf eines der Glob-Muster passen (z. B. keine .HEIC-Dateien in Großbuchstaben existieren).
Nützliche Schalter
| Schalter | Beschreibung |
|---|---|
-q <1-100> | JPEG-Ausgabequalität. Die Vorgabe variiert je nach Build; immer explizit angeben. |
--with-exif | Bewahrt EXIF-Metadaten (Kameramodell, GPS, Datum/Uhrzeit) in der Ausgabedatei. |
-S | Extrahiert alle Bilder aus Mehrbildsequenzen (z. B. Live Photos, Serienaufnahmen). |
-C <value> | Legt die Chroma-Upsampling-Methode fest: nearest-neighbor, bilinear. |
Tipp: Wenn Ihre HEIC-Dateien von einem iPhone stammen und Sie GPS-Koordinaten oder Kameraeinstellungen in der JPG-Ausgabe benötigen, fügen Sie immer --with-exif hinzu. Ohne diesen Schalter verwerfen einige Builds von heif-convert die Metadaten stillschweigend.
ImageMagick — das Schweizer Taschenmesser
ImageMagick ist das am weitesten verbreitete Bildverarbeitungs-Toolkit auf Linux-Servern. Wenn es auf Ihrem System bereits vorhanden ist, benötigen Sie möglicherweise nichts weiter — neuere Versionen enthalten libheif als Delegate für die HEIC-Dekodierung. CleverUtils.com nutzt ImageMagick zur Nachbearbeitung (Größenänderung, Qualitätsanpassung, Metadatenverwaltung).
Installation
# Ubuntu / Debian (with HEIC delegate)
sudo apt install imagemagick libheif-dev
# Fedora
sudo dnf install ImageMagick libheif-devel
# macOS
brew install imagemagick
Prüfen Sie, ob der HEIC-Delegate verfügbar ist:
magick identify -list format | grep -i heic
Wenn HEIC in der Ausgabe erscheint, kann ImageMagick Ihre Dateien direkt lesen.
Einzeldatei-Konvertierung
magick convert input.heic -quality 92 output.jpg
Oder mit ImageMagick 7+ die Kurzform:
magick input.heic -quality 92 output.jpg
Batch-Konvertierung
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
magick "$f" -quality 92 "${f%.*}.jpg"
done
Erweiterte Optionen
ImageMagick erlaubt es Ihnen, im selben Befehl Bilder zu skalieren, Metadaten zu entfernen oder den Farbraum anzupassen:
# 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 — für videoorientierte Workflows
FFmpeg ist primär ein Video-Tool, kann aber HEIC-Dateien dekodieren, wenn es mit HEVC-Unterstützung kompiliert wurde. Das ist praktisch, wenn FFmpeg bereits Teil Ihrer Pipeline ist und Sie keine weiteren Tools installieren möchten.
Installation
# Ubuntu / Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg-free
# macOS
brew install ffmpeg
Konvertierung
ffmpeg -i input.heic output.jpg
Um die JPEG-Qualität festzulegen (FFmpeg verwendet eine Skala von 2–31, wobei 2 am besten ist):
ffmpeg -i input.heic -q:v 2 output.jpg
Batch-Konvertierung
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
ffmpeg -i "$f" -q:v 2 "${f%.*}.jpg" -y
done
Der Schalter -y überschreibt vorhandene Ausgabedateien ohne Nachfrage.
Hinweis: FFmpegs HEIC-Unterstützung hängt davon ab, wie es kompiliert wurde. Einige Linux-Distributionspakete (z. B. ffmpeg-free auf Fedora) enthalten aus patentrechtlichen Gründen möglicherweise keine HEVC-Dekodierung. Bei einem Decoder-Fehler verwenden Sie stattdessen heif-convert oder ImageMagick.
Python — pillow-heif + Pillow
Für Entwickler, die HEIC-Konvertierung innerhalb einer Python-Anwendung oder eines Skripts benötigen, fügt die Bibliothek pillow-heif Pillow (PIL) HEIC-Unterstützung hinzu. Das ist nützlich zur Integration der Konvertierung in Datenpipelines, Web-Backends oder Automatisierungsskripte.
Installation
pip install pillow-heif Pillow
Einzeldatei-Konvertierung
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)
Batch-Konvertierungsskript
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-Daten erhalten
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)
Der Parameter exif reicht die rohen EXIF-Bytes an die JPG-Ausgabe weiter und bewahrt Kameraeinstellungen, GPS-Koordinaten und Zeitstempel.
macOS-Terminal — sips (eingebaut)
macOS enthält sips (Scriptable Image Processing System) standardmäßig. Es unterstützt HEIC nativ, da macOS den HEVC-Codec mitliefert. Keine Installation erforderlich.
Einzeldatei-Konvertierung
sips -s format jpeg input.heic --out output.jpg
Batch-Konvertierung
mkdir -p converted
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
sips -s format jpeg "$f" --out "converted/${f%.*}.jpg"
done
Einschränkung: sips entfernt bei der Formatkonvertierung die meisten EXIF-Metadaten. Wenn Sie GPS-Koordinaten oder Kameraeinstellungen erhalten möchten, verwenden Sie stattdessen heif-convert --with-exif oder ImageMagick unter macOS. Beide sind über Homebrew verfügbar.
PowerShell (Windows) — ImageMagick-Schleife
Unter Windows bietet ImageMagick die zuverlässigste Kommandozeilenoption. Nach der Installation können Sie PowerShell für die Batch-Konvertierung verwenden:
Installation
- Laden Sie den Windows-Installer von
imagemagick.org/script/download.phpherunter (wählen Sie „Win64 dynamic"). - Starten Sie den Installer und aktivieren Sie „Add application directory to your system path".
- Öffnen Sie ein neues PowerShell-Fenster und prüfen Sie:
magick --version
Einzeldatei
magick convert photo.heic -quality 92 photo.jpg
Batch-Konvertierung
Get-ChildItem *.heic | ForEach-Object {
magick convert $_.FullName -quality 92 ($_.DirectoryName + "\" + $_.BaseName + ".jpg")
}
Dies konvertiert jede .heic-Datei im aktuellen Ordner in JPG mit Qualität 92. Die Originaldateien bleiben unverändert.
Tool-Vergleich
| Tool | Plattformen | Batch | Qualitätssteuerung | EXIF | Geschwindigkeit* |
|---|---|---|---|---|---|
| heif-convert | Linux, macOS | Ja | -q 1-100 | --with-exif | ~0,3 s / Datei |
| ImageMagick | Linux, macOS, Win | Ja | -quality | Standardmäßig | ~0,5 s / Datei |
| FFmpeg | Linux, macOS, Win | Ja | -q:v 2-31 | Standardmäßig | ~0,6 s / Datei |
| Python | Linux, macOS, Win | Ja | quality= | Manuell | ~0,8 s / Datei |
| sips | nur macOS | Ja | Eingeschränkt | Entfernt das meiste | ~0,4 s / Datei |
| PowerShell | Windows | Ja | -quality | Standardmäßig | ~0,5 s / Datei |
*Ungefähre Zeiten für ein 12-MP-iPhone-Foto (4032 × 3024) auf moderner Hardware. Die tatsächliche Geschwindigkeit variiert je nach CPU, Datenträger-I/O und Bildkomplexität.
Qualitätseinstellungen erklärt
Verschiedene Tools verwenden unterschiedliche Qualitätsskalen. So erzielen Sie eine vergleichbare Ausgabe über alle Tools hinweg:
| Zielqualität | heif-convert / IM | FFmpeg (-q:v) | Python (Pillow) |
|---|---|---|---|
| Maximal | -q 100 |
-q:v 2 |
quality=100 |
| Optimal (CleverUtils) | -q 92 |
-q:v 3 |
quality=92 |
| Gut | -q 85 |
-q:v 5 |
quality=85 |
| Web-optimiert | -q 75 |
-q:v 8 |
quality=75 |
Warum Qualität 92? Das ist die Einstellung, die CleverUtils.com in Produktion verwendet. Bei 92 ist das konvertierte JPG unter normalen Betrachtungsbedingungen visuell identisch mit dem HEIC-Original. Höher zu gehen (95+) bläht die Dateigröße um 30–50 % auf, ohne merkbare Verbesserung. Unter 85 werden Kompressionsartefakte in Himmelsverläufen und feinen Texturen sichtbar.
Keine Lust auf die Kommandozeile?
Wenn Sie lieber auf Tool-Installation, Delegate-Konfiguration und Shell-Schleifen verzichten möchten — das Konverter-Widget oben auf dieser Seite erledigt dasselbe in Ihrem Browser. Laden Sie eine HEIC-Datei hoch, erhalten Sie in Sekunden ein JPG zurück. CleverUtils.com nutzt heif-convert + ImageMagick auf seinen Servern — dieselben Tools wie in diesem Artikel, bereits konfiguriert und optimiert.