Accueil > Le développement > La formation > Les Outils Numériques > Les lignes de commande sous macOS > Les lignes de commande - Leçon 3 - La gestion des dépendances avec (...)

Les lignes de commande - Leçon 3 - La gestion des dépendances avec l’exemple d’ImageMagick

vendredi 29 septembre 2023, par Vincent CALLIES

Lorsque l’on a un iPhone, les photographies sont enregistrées au format HEIC. Il est souvent utile de pouvoir les convertir en JPEG afin de les partager plus universellement. Il y a de merveilleux scripts spécialisés dans cette tache et qui s’exécutent en ligne de commande. L’un de ceux-ci s’appelle ImageMagick. L’installation sur votre Mac de cette solution est un parfait exemple pour notre exercice qui vient compléter la leçon 1 et la leçon 2.

L’installation d’ImageMagick sera l’occasion de découvrir la difficulté de gérer les dépendances. En effet, cette solution logicielle a besoin d’une bibliothèque de librairies pour convertir dans différents formats des images graphiques. Vous aurez alors deux solutions : les installer une à une depuis leurs dépôts ou utiliser un gestionnaire de paquets.

Télécharger l’archive de ImageMagick et la décompresser

Il est bien sur possible de télécharger ce logiciel depuis un depot sur GitHub. Mais cela va demander d’installer ses dépendances une à une.
Pour faciliter une installation complexe, il existe des gestionnaires de paquets. Le plus célèbre sur maxOS est écrit en Ruby et appelé Homebrew. Il va permettre d’installer en une fois ImageMagick et un ensemble de dépendances.

1. Installer ImageMagick directement depuis son dépôt GitHub

Après avoir ouvert le Terminal, placez vous dans le répertoire par défaut :
cd $HOME

ImageMagick est une solution en OpenSource qui facilite la conversion dans différents formats. Il convient tout d’abord de télécharger les scripts, ce que nous vous proposons de faire avec la ligne de commande suivante :

git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.1

Note : Il peut vous être nécessaire d’installer préalablement la Command Line Developper Tools d’Apple. En tant que de besoin, la commande xcode-select --install vous permettra de le faire. Si vous voulez savoir si cet élément est déjà installé, saisissez la commande xcode-select -p qui vous indiquera le cas échéant où il a été installé.

Vérifier qu’un répertoire a été créé pour ImageMagick
ls

1.1 Créer des variables d’environnement permanentes

Lorsque vous avez passé la ligne de commande cd $HOME, vous avez utilisé une variable d’environnement $HOME. Pour connaitre toutes ces variables, vous pouvez saisir la commande suivante :
export -p
ou
printenv

Nous allons créer deux variables d’environnement permanentes pour l’utilisation de Magick. Cela nous facilitera les lignes de commande à saisir pour notre travail ultérieur.

C’est un script qui accueille ces raccourcis invisibles. Vous pouvez ne pouvez pas voir ces fichiers invisibles lors de la consultation de la liste du contenu d’un répertoire par la commande ls. Mais un argument vous permettra de voir tous les fichiers invisibles :
ls -a

Nous allons éditer le fichier invisible .profile avec le CLI vim (voir l’article précédent si besoin) :
vim .profile

Nous allons écrire (tapez i pour l’indiquer au logiciel votre intention) et saisissez les lignes suivantes :

export MAGICK_HOME="$HOME/ImageMagick-7.1.1"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

quittez le CLI et enregistrer votre fichier (Pour vim il faut enregistrer les modifications avec :w et pour quitter :q).

Activer le fichier modifier par la commande :
source .profile

Vérifier que tout fonctionne en demandant à ce que la variable MAGICK_HOME soit affichée :
echo $MAGICK_HOME

Placez-vous dans le répertoire avec la commande :
cd ImageMagick-7.1.1
ou
cd $MAGICK_HOME

tapez
./configure --with-modules

tapez
sudo make install

1.2 utiliser ImageMagick

L’utilisation de ImageMagick vous permet d’avoir accès à de nombreux format de conversion. Pour avoir un aperçu de comment utiliser sa commande convert, tapez :
convert --help

Vérifiez que vous avez bien les formats voulus :
magick identify -list format

Si le format JPG manque, regarder la librairie utilisée par imagemagick et installez là. Ce sont sans doute ces dernières complications qui vous inviterons à prendre la seconde solution d’installation avec Brew.

2. Installer ImageMagick avec l’aide de Homebrew

Installez préalablement brew avec la ligne de commande recommandée sur leur site. Homebrew est écrit en Ruby, qui est un langage installé d’origine sur votre macOS (et même précédemment Mac OS X).

Une fois ce gestionnaire de paquets installé, vous aurez accès à de nombreux packages, appelés formula, vous permettant d’installer des solutions intégrée dont celle d’ImageMagick.

Après l’installation de Homebrew, en une seule ligne de commande vous permet d’installer ImageMagick et ses dépendances :

brew install imagemagick

Seront installées toutes les dépendances nécessaires : libpng, freetype, fontconfig, jbig2dec, jpeg-turbo, libidn, xz, lz4, zstd, libtiff, little-cms2, openjpeg, ghostscript, brotli, giflib, highway, imath, openexr, webp, jpeg-xl, libvmaf, aom, libde265, pcre2, gettext, glib, shared-mime-info, x265, libheif, liblqr, jasper, libomp, libraw, m4 et libtool.

Homebrew installe les paquets dans leurs propres répertoires vers /opt/homebrew. Pour savoir où est situé ce répertoire, saisissez la ligne de commande :
echo $HOMEBREW_REPOSITORY

Pour avoir la liste des logiciels installé par Brew :
brew list -v

Pour avoir une description du fichier Brew lui-même
ls -ail $HOMEBREW_REPOSITORY/bin/Brew

2.1 Les liens symboliques créés par Homebrew

Homebrew installe les paquets dans leurs propres répertoires et crée des liens symboliques de leurs fichiers vers /opt/homebrew.
Un lien symbolique est un raccourci.

Pour connaitre les liens symboliques existants :
ls -l

2.2 Utiliser ImageMagick

La conversion se fait très simplement, d’un fichier en HEIC que vous voulez convertir en un fichier jpg

Vérifiez que vous avez bien les formats voulus :
magick identify -list format

Placez vous dans le répertoire de vos photos, cela vous évitera de devoir spécifier les chemins d’accès.

Pour convertir un fichier précis (ici IMG_1119.HEIC)
magick convert IMG_1119.HEIC -quality 80% IMG_1119.jpg

Pour convertir tous les fichiers du répertoire
mogrify -format jpg -quality 80% *.HEIC

Note : Il serait possible, avec Pixelmator Pro 2.2 et la nouvelle application Raccourcis pour Mac d’effectuer ce travail de conversion d’images.

Conclusion

Le SYNPER donne des formations d’initiation à la programmation. Les articles de cette rubrique accompagnent une formation sur les lignes de commande avec macOS.

  • Un premier article qui vous a appris à passer des commandes UNIX.
  • Un second article vous a appris à regrouper ces commandes et les exécuter depuis un fichier.
  • Le présent article vous a appris à appeler un dépôt et procéder à une installation par paquets. Ce sont des opérations importantes à savoir faire pour utiliser tous les outils disponibles en open-source.
  • Le prochain article vous proposera de jongler avec la Pile LAMP en ligne de commande.