Flux rss
Collection CommentCaMarche.net

ImageMagick - Manipuler les images en ligne de commande

Publié par sebsauvage, dernière mise à jour le mercredi 22 août 2007 à 21:57:49 par Nilou17


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. Allez à: http://www.imagemagick.org/script/binary-releases.php#windows
  • 2. Téléchargez le fichier ImageMagick-6.x.x-x-Q16-windows-dll.exe
  • 3. Installez-le. Lors de l'installation, n'oubliez pas de bien cocher la case "Update executable search path"
  • 4. 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]
Ligne Commande "Exécuté" ? (Résolu) Hello, Je voudrais savoir quel sont les lignes de commandes pour "Exécuté" . Merci d'avance @+ "Vouloir, c'est pouvoir."                       "L'union fait la force."... www.commentcamarche.net/forum/affich-9733670-ligne-commande-execute
Question pour la manipulation (image ghost) (Résolu) Bonjours, je voudrais s'avoir si il y a des risques importants sur la créations des images ghost. J'ai vu que d'autre personnes avaient des problèmes. Est-ce que la création d'une image ghost de mon disque dur (partition de... www.commentcamarche.net/forum/affich-2114052-question-pour-la-manipulation-image-ghost
Manipulation de lignes et suppressions de car (Résolu) Bonjour à partir de ce fichier H+01_N tous les lundis (1d) (+1c) n (yyy,nnn,nnn,nnn,nnn,nnn,nnn) H+02_N tous les mardis (1d) (+1c) n (nnn,yyy,nnn,nnn,nnn,nnn,nnn) J+01LS Du lundi au samedi (1d) (+1c) n (yyy,yyy,yyy,yyy,yyy,yyy,nnn) J+01LV Du Lundi au... www.commentcamarche.net/forum/affich-3121046-manipulation-de-lignes-et-suppressions-de-car
Syntaxe de la ligne de commande NT/XPSyntaxe de la ligne de commande NT/XP Voici une page web décrivant la syntaxe de la ligne de commande de Windows NT/2000/XP/2003 (cmd.exe). On y retrouve comment faire des boucles, découper des chaînes de caractères, manipuler les dates, utiliser... www.commentcamarche.net/faq/sujet-5650-syntaxe-de-la-ligne-de-commande-nt-xp
Redémarrer l'interface réseau en ligne de commandeDans le cas d'une mise en place d'un réseau, notamment pour vérifier qu'un serveur DHCP attribue correctement les adresses IP, il peut être plus rapide de redémarrer l'interface réseau en ligne de commande plutôt que par l'interface graphique. Ces... www.commentcamarche.net/faq/sujet-10601-redemarrer-l-interface-reseau-en-ligne-de-commande
Firefox + YubNub = la ligne de commande du webhttp://yubnub.org/ est un moteur de recherche un peu spécial: Il possède des commandes (à taper) pour effectuer des actions. Par exemple, tapez gim chats pour chercher des images de chats sur google. On peut intégrer ce moteur de recherche dans... www.commentcamarche.net/faq/sujet-7907-firefox-yubnub-la-ligne-de-commande-du-web
Connection ftp par ligne de commande (Résolu)je cherche a créer un .bat en ligne de commande windows pour envoyé un fichier sur mon serveur ftp a chaque fois que je click dessus. j'ai bien avancé dans le code mais j'ai un dernier problème qui refuse de se résoudre. voici mon code :... www.commentcamarche.net/forum/affich-3562613-connection-ftp-par-ligne-de-commande
Ligne de Commande pour Zipper automatiquement (Résolu)Bonjour, J'aimerais connaître la ligne de commande (sous Windows XP) permettant de créer une archive .zip d'un dossier c:\dossier par exemple. Bien entendu, sans installer un quelconque logiciel, mais en passant par l'outils de gestion... www.commentcamarche.net/forum/affich-1291337-ligne-de-commande-pour-zipper-automatiquement
Command and conquer generals jeux en ligne (Résolu)bonjour, j'ai une petite question j'ai acheter command and conquer generals ayant fini le jeu tout a l'heure je voudrais jouer en ligne mais je n'y arrive pas il y a toujour une erreur de telechargement de la mise a jour si... www.commentcamarche.net/forum/affich-6828198-command-and-conquer-generals-jeux-en-ligne
Le premier site Web pour commander en ligne des services la personne(Paris - Relax news) - France Domicile, entreprise spécialisée dans les services à la personne, a lancé le premier site Internet permettant aux particuliers de commander directement en ligne le service à la personne dont ils ont besoin. Contrairement... www.commentcamarche.net/actualites/le-premier-site-web-pour-commander-en-ligne-des-services-la-personne-5087962-actualite.php3
Linux - Gestion des utilisateursPremier pas de l'administrateur Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer doivent être connus. Les... www.commentcamarche.net/contents/linux/linusr.php3
Linux - Le shellIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système... www.commentcamarche.net/contents/linux/linshell.php3
Utilisation de la commande ftpLe 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 transférer des... www.commentcamarche.net/contents/utile/ftp.php3