heif-convert (libheif) — l'outil natif le plus rapide
heif-convert est un utilitaire en ligne de commande du projet libheif — l'implémentation de référence du format HEIF/HEIC. Il décode les fichiers HEIC nativement sans dépendre des delegates ImageMagick ni de codecs externes. C'est la même bibliothèque que CleverUtils.com utilise sur ses serveurs backend pour le traitement HEIC, aux côtés d'ImageMagick pour le post-traitement.
Installation
Installez les outils libheif pour votre plateforme :
# 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
Vérifiez l'installation :
heif-convert --version
Conversion de base
Convertir un fichier unique en JPG à qualité 92 :
heif-convert input.heic output.jpg -q 92
L'indicateur -q définit la qualité JPEG (1–100). La qualité 92 est le point idéal — visuellement identique à l'original HEIC tout en gardant une taille de fichier raisonnable.
Conversion par lots
Convertir chaque fichier HEIC du répertoire courant :
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
heif-convert "$f" "${f%.*}.jpg" -q 92
done
La protection [ -e "$f" ] || continue gère le cas où aucun fichier ne correspond à un motif glob (par exemple, aucun fichier .HEIC en majuscules n'existe).
Indicateurs utiles
| Indicateur | Description |
|---|---|
-q <1-100> | Qualité de sortie JPEG. La valeur par défaut varie selon la build ; spécifiez-la toujours explicitement. |
--with-exif | Préserve les métadonnées EXIF (modèle d'appareil, GPS, date/heure) dans le fichier de sortie. |
-S | Extrait toutes les images des séquences multi-images (par exemple Live Photos, rafales). |
-C <value> | Définit la méthode de suréchantillonnage chroma : nearest-neighbor, bilinear. |
Astuce : si vos fichiers HEIC proviennent d'un iPhone et que vous avez besoin des coordonnées GPS ou des réglages de l'appareil dans la sortie JPG, incluez toujours --with-exif. Sans cela, certaines builds de heif-convert supprimeront silencieusement les métadonnées.
ImageMagick — le couteau suisse
ImageMagick est la boîte à outils de traitement d'images la plus largement installée sur les serveurs Linux. Si votre système l'a déjà, vous n'aurez peut-être besoin de rien d'autre — les versions récentes incluent libheif comme delegate pour le décodage HEIC. CleverUtils.com utilise ImageMagick pour le post-traitement après conversion (redimensionnement, ajustement de qualité, gestion des métadonnées).
Installation
# Ubuntu / Debian (with HEIC delegate)
sudo apt install imagemagick libheif-dev
# Fedora
sudo dnf install ImageMagick libheif-devel
# macOS
brew install imagemagick
Vérifiez que le delegate HEIC est disponible :
magick identify -list format | grep -i heic
Si HEIC apparaît dans la sortie, ImageMagick peut lire vos fichiers directement.
Conversion d'un fichier unique
magick convert input.heic -quality 92 output.jpg
Ou avec ImageMagick 7+, la forme plus courte :
magick input.heic -quality 92 output.jpg
Conversion par lots
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
magick "$f" -quality 92 "${f%.*}.jpg"
done
Options avancées
ImageMagick vous permet de redimensionner, supprimer les métadonnées ou ajuster l'espace colorimétrique dans la même commande :
# 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 — pour les workflows orientés vidéo
FFmpeg est avant tout un outil vidéo, mais il peut décoder les fichiers HEIC s'il a été compilé avec le support HEVC. C'est pratique si FFmpeg fait déjà partie de votre pipeline et que vous voulez éviter d'installer d'autres outils.
Installation
# Ubuntu / Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install ffmpeg-free
# macOS
brew install ffmpeg
Conversion
ffmpeg -i input.heic output.jpg
Pour définir la qualité JPEG (FFmpeg utilise une échelle de 2–31, où 2 est le meilleur) :
ffmpeg -i input.heic -q:v 2 output.jpg
Conversion par lots
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
ffmpeg -i "$f" -q:v 2 "${f%.*}.jpg" -y
done
L'indicateur -y écrase les fichiers de sortie existants sans demander confirmation.
Remarque : la prise en charge HEIC de FFmpeg dépend de sa compilation. Certains paquets de distribution Linux (par exemple ffmpeg-free sur Fedora) peuvent manquer du décodage HEVC en raison de problèmes de brevets. Si vous obtenez une erreur de décodeur, utilisez plutôt heif-convert ou ImageMagick.
Python — pillow-heif + Pillow
Pour les développeurs qui ont besoin de convertir HEIC à l'intérieur d'une application ou d'un script Python, la bibliothèque pillow-heif ajoute le support HEIC à Pillow (PIL). C'est utile pour intégrer la conversion dans des pipelines de données, des backends web ou des scripts d'automatisation.
Installation
pip install pillow-heif Pillow
Conversion d'un fichier unique
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)
Script de conversion par lots
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}")
Préservation des données EXIF
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)
Le paramètre exif transmet les octets EXIF bruts à la sortie JPG, préservant les réglages de l'appareil, les coordonnées GPS et les horodatages.
Terminal macOS — sips (intégré)
macOS inclut sips (Scriptable Image Processing System) par défaut. Il prend en charge HEIC nativement car macOS embarque le codec HEVC. Aucune installation requise.
Conversion d'un fichier unique
sips -s format jpeg input.heic --out output.jpg
Conversion par lots
mkdir -p converted
for f in *.heic *.HEIC; do
[ -e "$f" ] || continue
sips -s format jpeg "$f" --out "converted/${f%.*}.jpg"
done
Mise en garde : sips supprime la plupart des métadonnées EXIF lors de la conversion de format. Si vous avez besoin de préserver les coordonnées GPS ou les réglages de l'appareil, utilisez plutôt heif-convert --with-exif ou ImageMagick sur macOS. Les deux sont disponibles via Homebrew.
PowerShell (Windows) — boucle ImageMagick
Sous Windows, ImageMagick offre l'option en ligne de commande la plus fiable. Une fois installé, vous pouvez utiliser PowerShell pour convertir par lots :
Installation
- Téléchargez l'installeur Windows sur
imagemagick.org/script/download.php(choisissez « Win64 dynamic »). - Lancez l'installeur et cochez « Add application directory to your system path ».
- Ouvrez une nouvelle fenêtre PowerShell et vérifiez :
magick --version
Fichier unique
magick convert photo.heic -quality 92 photo.jpg
Conversion par lots
Get-ChildItem *.heic | ForEach-Object {
magick convert $_.FullName -quality 92 ($_.DirectoryName + "\" + $_.BaseName + ".jpg")
}
Cela convertit chaque fichier .heic du dossier courant en JPG à qualité 92. Les fichiers originaux restent intacts.
Comparaison des outils
| Outil | Plateformes | Lots | Ctrl qualité | EXIF | Vitesse* |
|---|---|---|---|---|---|
| heif-convert | Linux, macOS | Oui | -q 1-100 | --with-exif | ~0,3 s / fichier |
| ImageMagick | Linux, macOS, Win | Oui | -quality | Par défaut | ~0,5 s / fichier |
| FFmpeg | Linux, macOS, Win | Oui | -q:v 2-31 | Par défaut | ~0,6 s / fichier |
| Python | Linux, macOS, Win | Oui | quality= | Manuel | ~0,8 s / fichier |
| sips | macOS uniquement | Oui | Limité | Supprime la plupart | ~0,4 s / fichier |
| PowerShell | Windows | Oui | -quality | Par défaut | ~0,5 s / fichier |
*Temps approximatifs pour une photo iPhone 12 MP (4032 × 3024) sur du matériel moderne. La vitesse réelle varie selon le CPU, l'E/S disque et la complexité de l'image.
Réglages de qualité expliqués
Chaque outil utilise une échelle de qualité différente. Voici comment obtenir un rendu équivalent d'un outil à l'autre :
| Qualité cible | heif-convert / IM | FFmpeg (-q:v) | Python (Pillow) |
|---|---|---|---|
| Maximum | -q 100 |
-q:v 2 |
quality=100 |
| Optimal (CleverUtils) | -q 92 |
-q:v 3 |
quality=92 |
| Bon | -q 85 |
-q:v 5 |
quality=85 |
| Optimisé pour le web | -q 75 |
-q:v 8 |
quality=75 |
Pourquoi la qualité 92 ? C'est le réglage utilisé par CleverUtils.com en production. À 92, le JPG converti est visuellement identique à l'original HEIC dans des conditions de visualisation normales. Monter plus haut (95+) gonfle la taille du fichier de 30–50 % sans amélioration perceptible. En dessous de 85, les artefacts de compression deviennent visibles dans les dégradés de ciel et les textures fines.
Pas envie de la ligne de commande ?
Si vous préférez éviter l'installation d'outils, la configuration de delegates et l'écriture de boucles shell — le widget de conversion en haut de cette page fait la même chose dans votre navigateur. Envoyez un fichier HEIC, récupérez un JPG en quelques secondes. CleverUtils.com utilise heif-convert + ImageMagick sur ses serveurs — les mêmes outils couverts dans cet article, déjà configurés et optimisés.