ImageMagick - Manipuler les images en ligne de commande

Dernière mise à jour le 5 février 2009 à 15:02 par ChristophePineau
Publié par sebsauvage


ImageMagick est un formidable outil en ligne de commande qui permet de manipuler les images.

L'avantage de cet outil est qu'il permet:
  • d'automatiser les travaux sur les images (cela évite d'avoir à faire certaines manipulations dans Photoshop ou Gimp).
  • D'appliquer des opérations et conversions d'un coup sur des centaines d'images à la fois.
  • De convertir entre différents formats d'images
  • De créer des images à la volée
  • D'être intégré dans vos programmes et scripts (cela permet à vos programmes et scripts de générer et manipuler des images à la volée). Par exemple, il est utilisable à partir de php pour générer des images.


Ce programme existe sous Windows et Linux.


Sommaire:



Installer ImageMagick sous Windows

  • 1. Télécharger ImageMagick
  • 2. Installez-le. Lors de l'installation, n'oubliez pas de bien cocher la case "Update executable search path"
  • 3. Fermez et ré-ouvrez votre session (ou bien redémarrez l'ordinateur). Cette étape est nécessaire pour que le chemin (PATH) d'ImageMagick soit pris en compte.



Pour vérifier l'installation, ouvez une fenêtre MS-Dos et tapez: convert --version

Vous devez voir
Version: ImageMagick 6.3.3 04/08/07 Q16 file:///usr/local/share/doc/ImageMagick
6.3.3/index.html
Copyright: Copyright (C) 1999-2007 ImageMagick Studio LLC

Convertir une image d'un format à un autre

  • Convertir une image bmp en png:
    convert image.bmp image.png
  • Convertir une image bmp en jpg progressif, qualité 70%:
    convert image.bmp -interlace line -quality 70 image.png


L'option -quality x vous permet de régler la qualité du JPEG.
L'option -interlace line permet de créer des JPEG progessifs.

Préparer une photo pour le web


Les opérations utiles sont:
  • réduire la résolution de l'image (par exemple, passer de 2592x1944 (5 Méga-pixels) à 800x600)
  • compresser en JPEG progressif (pour un affichage immédiat de l'image dans la page)
  • supprimer les informations inutiles (commentaires, informations EXIF...: Ces informations complémentaires (miniature, nom du logiciel qui a créé ce fichier, paramètres de l'appareil photo lors de la prise de vue (EXIF), etc.) sont ignorées par les navigateurs.


convert maphoto.jpg -resize 800x600 -strip -quality 50 -interlace line imageweb.jpg
  • -resize AxB redimensionne l'image à la taille voulue.
  • -strip supprime les informations additionnelles (EXIF, commentaires...)
  • -quality 50 permet de choisir une qualité de 50% pour la compression JPEG.
  • -interlace line permet de créer un JPEG progressif.

Apposer un texte sur une image


Pour éviter de vous faire piquer une image haute résolution sans autorisation, vous pouvez apposer un texte sur toute la surface de l'image.

convert -size 150x50 xc:none -matte -pointsize 20 -fill #ffffff80 -draw "text 10,30 'Mon copyright'" miff:- | composite -tile - photo.jpg resultat.jpg


Exemple:

(Image de gazzat sous license CC.)

La suppression de ce marquage est un travail trop important pour que le vol de l'image soit intéressant.

Appliquer une transformation à un groupe d'images


Pour simplifier les explications précédentes, les exemples ont été donnés sur une seule image.
Mais il est possible d'effectuer ces opérations d'un coup sur de nombreuses images.

Recompresser les images JPEG du répertoire courant en qualité 70 (sortie dans le sous-répertoire output):
FOR %%G IN (*.jpg) DO convert "%%G" -strip -quality 70 -interlace plane "output/%%G"


Convertir tous les fichiers .BMP en .JPG (même nom):
FOR %%G IN (*.bmp) DO convert "%%G" -strip -quality 70 -interlace plane "%%~nG.jpg"


(~n signifie qu'on ne prend que le nom du fichier (sans son extension).)

Liens





[Note: Article à compléter]
Meilleures réponses pour « ImageMagick Manipuler les images en ligne de commande » dans :
[Windows] Démarrer/arrêter un service en ligne de commande Voir L'outil netsh (netsh.exe) permet d'automatiser le démarrage ou l'arrêt d'un service grâce à la ligne de commande suivante : Pour démarrer un service : Net start nom_du_service Pour arrêter un service : Net stop nom_du_service Cela nécessite les...
Liste des commandes Windows VoirRemarques : Certaines commandes sont dangereuses (l’exemple de SYSKEY) et peuvent causer des problèmes pouvant conduire au formatage. D’autres commandes ne sont pas exécutables sous Windows XP ou des versions antérieures, je ne les ai pas...
Se connecter à un serveur FTP en mode Ms-Dos VoirLa commande ftp permet de se connecter à un serveur FTP en ligne de commande. Certaines options de cette commande permettent d'automatiser la connexion en fournissant une liste de commandes contenues dans un fichier texte : ftp -i ...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
Introduction aux courants porteurs en ligne (CPL) VoirIntroduction aux CPL On retient sous l'appellation CPL « Courants Porteurs en Ligne » toute technologie qui vise à faire passer de l'information à bas débit ou haut débit sur les lignes électriques en utilisant des techniques de modulation...
Tests et diagnostics du réseau VoirTester la configuration IP Avant toute chose, il est recommandé de véfier la configuration IP de l'ordinateur. Les systèmes Windows proposent un outil en ligne de commande, appelé ipconfig permettant de connaître la configuration IP de...
Les commandes FTP VoirLe protocole FTP FTP (File Transfer Protocol) est un protocole, c'est-à-dire un langage standard de communication entre deux machines, permettant à des machines de types différents (ou dont le système d'exploitation est différent) de...
Collection CommentÇaMarche.net