Outils pour utilisateurs

Outils du site


software:formats:conversions:convertir_heic_jpg

Convertir les images au format HEIC vers JPG

Pour convertir en lot des images du format HEIC en JPG, on peut utiliser ImageMagick et sa commande CLI convert mais il doit être compilé avec le support du format HEIC.

Vérifier la version de convert disponible sur votre système:

convert --version
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib

Ici la version proposée n'est pas compilée avec le support heic.

Le besoin étant ponctuel et pour ne pas conserver un grand nombre de fichiers et augmenter la surface d'attaque, j'ai fait le choix de construire un environnement temporaire via Docker pour compiler ImageMagick en version 7 avec le support du format HEIC. Après conversion des fichiers l'environnement pourra être détruit.

# Récupère l'image minimale ubuntu 20.04
docker pull ubuntu:focal
 
# Construction d'un environnement temporaire pour construire le binaire
docker container run -it --name convert_tmp ubuntu:focal  /bin/bash
 
# Configure APT pour récupérer également les sources
# et mise a jour des listes de paquets
sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
apt-get update
 
# Installation des outils de compilation
apt-get install wget build-essential autoconf libtool git-core
 
apt-get build-dep imagemagick libmagickcore-dev libde265 libheif
 
# Téléchargement et compilation des bibliothèques
 
#libde256
cd /usr/src
git clone https://github.com/strukturag/libde265.git
cd libde265/ 
./autogen.sh 
./configure
make -j$(nproc)  
make install
 
#libheif
cd /usr/src
git clone https://github.com/strukturag/libheif.git 
cd libheif/ 
./autogen.sh 
./configure
make -j$(nproc)  
make install
 
# Compilation ImageMagick avec support HEIC
cd /usr/src/ 
wget https://www.imagemagick.org/download/ImageMagick.tar.gz 
tar xf ImageMagick.tar.gz 
cd ImageMagick-7*
./configure --with-heic=yes
make -j$(nproc)  
 
make install  
ldconfig

La version compilée dans l’environnement temporaire supporte à présent le format:

convert --version
Version: ImageMagick 7.1.0-37 Q16-HDRI x86_64 20104 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5) 
Delegates (built-in): bzlib djvu fontconfig freetype heic jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff webp x xml zlib
Compiler: gcc (9.4)
 
# Sortie et arrêt du conteneur
exit

Créer une image à partir du conteneur:

docker container list -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED             STATUS                          PORTS                                          NAMES
aac0197a9a46   ubuntu:focal                "/bin/sh"                About an hour ago   Exited (0) About a minute ago                                                  convert_tmp
. . .
 
# Création image
docker commit aac0197a9a46 tnf/imagemagick:v7.1.0-heic

On peut à présent créer un conteneur utilisant notre image et monter le répertoire de travail contenant les fichiers à traiter:

# Création d'un conteneur, avec montage lié au dossier contenant les images à traiter:
docker container run -it --name img_converter -v /home/yoann/input/:/mnt tnf/imagemagick:v7.1.0-heic /bin/bash
 
# Depuis le conteneur une simple boucle for
# permet d'appeler convert sur l'ensemble des images du dossier.
# Les images converties sont ici créés dans le même dossier 
cd /mnt
for f in *.HEIC;
do
  convert "$f" "$f".jpeg
done

Références

software/formats/conversions/convertir_heic_jpg.txt · Dernière modification : 2022/06/15 09:17 de yoann