Traitement d'image avec Imagemagick (convert, mogrify) [Topic Unique] - Logiciels & Retouche - Photo numérique
Marsh Posté le 18-12-2008 à 16:52:05
Le but de mogrify est de modifier une image directement (en taille, en format de fichier etc...), celui de convert est le mêm mais il ne modifie pas le fichier original. Ci-dessous, toutes les options sont utilisables par convert et mogrify.
Ce qui suit est valable pour les utilisateurs du plugin LR2/Mogrify de Timothy Armes
N'ayez pas peur, je donnerais des exemples précis bientôt !
Convertir une image en jpeg :
Très utile pour convertir des fichier tiff en JPEG (pour contourner la sortie catatrophique de C1 par exemple)
Code :
|
Convertir une image dans un autre espace colorimétrique :
Code :
|
Alléger une image en enlevant le profil ICC :
Très utile pour gagner de la place sur un affichage web. Par défaut les navigateurs web considèrent que toutes les images sont en sRGB, du coup une image utilisant déjà cet espace colorimétrique n'a pas besoin d'embarquer les informations ICC décrivant ce même espace.
Code :
|
Il semblerait que lors d'une conversion de format les EXIFS soient systématiquement perdus ! Il existe une méthode pour contourner le problème, voir le paragraphe Script & Ligne de commande ( http://forum.hardware.fr/forum2.ph [...] 0#t2970095 )
Redimensionner une image :
Code :
|
Accentuer une image :
Imagemagick offre plusieurs options -sharpen ou -unsharp ... En fait elle utilisent toutes les deux le principe d'accentuation par masque flou, simplement l'option -unsharp permet plus de contrôle sur les paramètres...
Code :
|
Un excellent article sur les valeurs radius,amount et threshold sur Aube nature : http://www.aube-nature.com/techniq [...] e-flou.php
Dans Imagemagick vient s'ajouter le paramètre Sigma : Ce paramètre doit avoir une valeur inférieure ou égale à Radius, il permet de diminuer l'effet de l'accentuation dans la zone située entre sigma et radius du centre de la matrice de convolution
En gros, il permet de diminuer l'accentuation au fur et à mesure que l'on s'éloigne du bord à accentuer, si radius=sigma, toute la zone donnée en Radius sera accentuée "à fond", si le Sigma est inférieur au rayon, la zone située entre Sigma et Radius sera de moins en moins accentuée en arrivant vers Radius :
Citation : Tentative d'explication:
|
Quelles valeurs alors ?
Les valeurs conseillées sont :
Exemple d'application sur une spirale (wikipédia) :
Rajouter un Cadre :
Une autre application bien pratique de convert et mogrify : l'ajout d'un cadre autour d'une photo de manière automatique. Pour cela il faudra définir la couleur du cadre (mattecolor) et sa taille (frame). il sera ainsi possible d'ajouter successivement plusieurs cadres de couleur différente pour simuler un passe-partout.
Code :
|
Marsh Posté le 18-12-2008 à 16:52:11
composite
Le but de composite est simplement de superposer deux images, avec tout une palette d'effets (transparence, etc ...). C'est intéressant pour ajouter une signature ou un watermark à une image de façon automatique.
Insérer une signature :
Bien qu'il soit possible de directement écrire sur une immage via "annotate", le plus propre reste d'utiliser une image possédant un fond transparent (comme un petit PNG par exemple) que l'on customisera aux petits oignons sur Photoshop ... Reste à l'intégrer dans notre image ! Pour cela il suffit de positionner correctement notre image de signature sur l'image principale.
Code :
|
Exemple sur le site d'Imagemagick
Citation : |
Donc pour insérer la signature dans le coin inférieur droit la valeur à utiliser est SouthEast...
La valeur de gravity affecte la façon dont le paramètre géométry est interprété : les valeurs positives de géométry indiquent un déplacement vers le centre de l'image donc une valeur offsety de 20 avec une valeur gravity SouthEast déplace la signature vers le haut, si on change gravity à NorthEast la signature se déplace vers le bas !!
Exemple concret: Ajout d'une signature dans le coin en bas à droite en l'éloignant de 20 pixels du bord droit :
Code :
|
identify
Déterminer l'orientation d'une image :
L'orientation ne fait pas forcément partie des exifs ... Pour la déterminer il faut déterminer la hauteur et la largeur de l'image.
Pour cela Imagemagick comprend la commande identify qui permet d'obtenir toutes les informations sur les images (tentez un identify -verbose <nom de votre image> pour voir toutes les infos récupérables).
Il est possible de ne récupérer que certaines valeurs grace à l'option -format, dans notre cas la hauteur (en pixel) de l'image est %h et la largeur %w :
Code :
|
Il suffit alors de faire un test :
Code :
|
Marsh Posté le 18-12-2008 à 16:56:56
Ligne de commande et scritping
La ligne de commande
Au vu des exemples précédents on pourrait penser que passer un TIFF en JPEG puis l'accentuer et enfin rajouter un cadre et une signature demanderait beaucoup de commandes. En fait ce n'est pas le cas, ici il suffira d'une commande mogrify et d'une commande composite :
Citation : Suppression de l'aperçu du tiff, accentuation, resize, cadre convert +delete -filter Lanczos -resize 750x750 -unsharp 0.5x0.3+0.75+0.02 -format JPEG -quality 95 -mattecolor white -frame 5x5 -mattecolor opaque -frame 20x20 -strip MonImage.TIFF MonImage.jpg |
Dans cet exemple on travaille sur MonImage.TIFF que l'on transforme en MonImage.jpg:
Citation : Insertion de la signature |
Rendu Final
Utiliser Exiftool pour conserver les Exifs
Un bug actuel de mogrify et convert fait perdre les exifs lors de la conversion TIFF > JPEG. La solution est d'utiliser un programme externe (Exiftool est celui utilisé par le plugin LR2/mogrify de T. Armes). Tout d'abord il suffit de télécharger Exiftool sur le site officiel : http://www.sno.phy.queensu.ca/~phil/exiftool/ les utilisateurs de windows devraient télécharger la version exe de l'appli. Dans ce cas là il faut juste renommer l'exe en exiftool.exe pour pouvoir l'utiliser dans nos batchs
Dés lors une seule option nous intéresse (à priori) : tagsFromFile qui permet de copier les métadonnées entre deux fichiers.
Citation : REM Extraction des exifs REM en encore plus simple |
Créer un script fonctionnant comme un Dropplet
Pour celà c'est "assez facile" ... Il faut avoir de petites bases de script... En gros le but d'un droplet est de traiter tous les fichiers qu'on fait glisser dessus par "glisser-déposer". Pour cela on utilise une variable (on va l'appeler %1) qui va prendre le nom complet de chaque fichier que l'on aura fait glisser sur le fichier de commande. Pour cela recopier le contenu de l'encadré dans un fichier texte renommé en monfichiertexte.cmd :
Citation :
:Traitement |
Il suffit de supprimer la dernière ligne pour la remplacer par la commande voulue ou alors rajouter la commande à la fin du programme, auquel cas le traitement de chaque nouveau fichier sera précédé par "Traitement du fichier nom du fichier". En l'état ce programme ne fait que ça.
Export Web compatible avec la charte HFR
Imagemagick ne gère pas d'emblée le traitement d'une image avec un poids cible à ne pas dépasser. Le script suivant peut permettre de contourner le problème en faisant progressivement baisser la qulité de la conversion en JPEG:
Code :
|
Marsh Posté le 18-12-2008 à 16:57:59
ReplyMarsh Posté le 19-12-2008 à 13:02:13
Du coup les premiers posts risquent d'être costauds, j'aimerais réussir à donner de bonnes indications aux intéressés
Marsh Posté le 19-12-2008 à 13:06:44
ReplyMarsh Posté le 19-12-2008 à 13:26:20
Est-ce qu'il y a un moyen de compresser en suivant une taille de sortie désirée?
Ce serait relativement très important car beaucoup de gens ici postent des images de 800ko sans faire attention. Et si après une compression faut vérifier que toutes les images sont correctes c'est un peu
Marsh Posté le 19-12-2008 à 13:44:50
Rassure toi Lapin, je connais qq'un qui se chargera de vérifier pour toi !
Marsh Posté le 19-12-2008 à 13:59:18
Megalyth a écrit : Rassure toi Lapin, je connais qq'un qui se chargera de vérifier pour toi ! |
Tu as vu, moi je pense a nos gentils modaleaux!
Marsh Posté le 19-12-2008 à 14:04:57
pekbull a écrit : |
ben vont s'ennuyer entre eux après...
Marsh Posté le 19-12-2008 à 15:21:23
Bon je vais tester tout ça dès que j'aurais récupéré une alim' pour mon fixe qui vient de me lâcher
Merci pour ces explications claires en tout cas BriK
Du cou pour un batch en sortie de C1 je suppose qu'il faut cocher la case qui dit de ne pas appliquer les paramètres d'accentuation ?
Marsh Posté le 19-12-2008 à 15:51:42
Oms7 a écrit : c'est une bonne question je passe par cs3 uniquement pour les vignettes web hfr... et sinon une autre question ca marche sur mac |
Oui Imagemagick passe sur Mac OS X : http://www.imagemagick.org/script/ [...] php#macosx
pekbull a écrit : Est-ce qu'il y a un moyen de compresser en suivant une taille de sortie désirée? Ce serait relativement très important car beaucoup de gens ici postent des images de 800ko sans faire attention. Et si après une compression faut vérifier que toutes les images sont correctes c'est un peu |
Malheureusement on ne peut pas faire de sortie en fonction de la taille ... Cependant il est possible de virer les inforamtions relatives au profil de couleur pour gagner de la place (pas mal à vrai dire) et être quasi certain de ne pas dépasser
Marsh Posté le 19-12-2008 à 15:52:20
jeje_le_routier a écrit : Bon je vais tester tout ça dès que j'aurais récupéré une alim' pour mon fixe qui vient de me lâcher |
Oui je vais détailler tout ça au fur et à mesure
Marsh Posté le 20-12-2008 à 02:44:11
Brik a écrit : |
ah bah c'est bien dommage
Tu peux virer les données exifs aussi? Et la conversion du profil colorimétrique Adobe RGB vers sRGB est bien correcte (par exemple si on vient d'un tiff 16bits avec un profil adobe RGB et qu'on le transforme en jpg sRGB pour le web)?
Marsh Posté le 22-12-2008 à 16:58:24
pekbull a écrit : |
En fait la commande -strip vire aussi bien les exifs que les données du profil (en gros toutes les métadonnées), du coup les navigateurs considèrent l'image en sRGB par défaut
Pour ton problème de profil je me renseigne (je fais les export en TIFF sRGB du coup ca ne me pose pas de problème) ...
Marsh Posté le 22-12-2008 à 17:17:32
En fait il suffit d'utiliser la clause -colorspace <espace de couleur voulu> pour faire la conversion, je vais le rajouter, d'autant que j'ai trouvé du coup un moyen de conserver les exifs tout en virant le profil de couleur
EDIT : En fait c'est un peu plus compliqué, je met à jour les premiers posts !
Marsh Posté le 24-12-2008 à 11:27:06
ReplyMarsh Posté le 24-12-2008 à 12:38:26
Testé brièvement pour avoir une petite idée, ben je suis favorablement impressionné par le système. L'accentuation est vraiment bonne et ne détruit pas trop le bokeh.
Merci Brik pour ce topic qui faisait défaut
Marsh Posté le 24-12-2008 à 13:38:57
Megalyth a écrit : Testé brièvement pour avoir une petite idée, ben je suis favorablement impressionné par le système. L'accentuation est vraiment bonne et ne détruit pas trop le bokeh. |
Tout est une question de réglages
Marsh Posté le 24-12-2008 à 14:04:06
Oui d'ailleurs faut que je me penche sur le fameux sigma pour améliorer les choses
Un seul regret, la non maitrise du poids des photos en sortie, mais bon, on ne peut pas tout avoir...
Marsh Posté le 24-12-2008 à 14:24:05
Megalyth a écrit : Oui d'ailleurs faut que je me penche sur le fameux sigma pour améliorer les choses |
Dans les infos que j'avais trouvé sur ce point les gars scriptaient la conversion et modifiaient les paramètres de compression si le poids final de l'image dépassait le poids voulu ... Je peux vous indiquer comment faire mais du coup la qualitaÿ peut être dégradée ...
Marsh Posté le 24-12-2008 à 14:39:06
Bien évidement, la qualité dérouille au passage, mais ça peut être intéressant d'avoir cette possibilité... les sacro saint 180Ko max !
Marsh Posté le 24-12-2008 à 15:56:29
Megalyth a écrit : Bien évidement, la qualité dérouille au passage, mais ça peut être intéressant d'avoir cette possibilité... les sacro saint 180Ko max ! |
OK je vais rajouer un exemple de script "HFR compliant"
Marsh Posté le 24-12-2008 à 16:27:27
Bon je viens de tester. Et franchement c'est vraiment très bien Notamment pour le resize web.
Par contre je vois vraiment pas l'intérêt par rapport à la sortie JPEG full size de C1 J'ai testé avec différents paramètres et les différences sont quasiment imperceptibles pour moi.
Par contre niveau resize web c'est vrai qu'il y a une énorme différence avec C1 qui est pourri à ce niveau. Maintenant faudra que je compare à mes scripts PS et Irfanview pour voir si ça vaut vraiment le coup en comparaison.
Marsh Posté le 24-12-2008 à 17:18:15
jeje_le_routier a écrit : Par contre je vois vraiment pas l'intérêt par rapport à la sortie JPEG full size de C1 |
Ben le sharpen de C1 est tout moche ! Il faut d'ailleurs décocher l'accentuation de C1 et faire une sortie en TIFF pour ensuite passer un scripts de conversion + sharpen via imagemagick (je préciserais tout cela dans le futur)
EDIT : J'oubliais presque de dire que j'avais rajouté une solution pour exporter tout en restant dans les standards HFR (800 pix de coté et moins de 180 Ko)
Marsh Posté le 25-12-2008 à 18:23:11
Justement, après plusieurs test j'avoue ne vraiment pas voir la différence entre un JPEG (full size) avec sharpen par défaut sorti de C1 et un TIFF sorti de C1 (sans accentuation) passé par imagemagik
Marsh Posté le 26-12-2008 à 14:25:37
jeje_le_routier a écrit : Justement, après plusieurs test j'avoue ne vraiment pas voir la différence entre un JPEG (full size) avec sharpen par défaut sorti de C1 et un TIFF sorti de C1 (sans accentuation) passé par imagemagik |
Ca dépend des réglages utilisés ... De toute façon si tu comptes re dimensionner ton image il te faut faire le sharpen en dernier lieu
Marsh Posté le 28-12-2008 à 01:14:24
Citation : De toute façon si tu comptes re dimensionner ton image il te faut faire le sharpen en dernier lieu |
Marsh Posté le 18-12-2008 à 16:51:15
Site Officiel : http://www.imagemagick.org
Installation à partir des binaires :
Les binaires pour les systèmes supportés (Unix, Linux, Mac OS X et windows) : http://www.imagemagick.org/script/binary-releases.php
Attention pour les version windows installez bien la version utilisant une précision de 16 bits ! La version 8 bits massacrerait vos pauvres photos !
Présentation extraite de l'article Wikipédia lui étant dédié
ImageMagick® est un logiciel libre, comprenant une bibliothèque, ainsi qu'un ensemble d'utilitaires en ligne de commande, permettant de créer, de convertir, de modifier et d'afficher des images dans un très grand nombre de formats. Les images peuvent être découpées, les couleurs peuvent être modifiées, différents effets peuvent être appliqués aux images, les images peuvent subir des rotations, il est possible d'y inclure du texte, des segments, des polygones, des ellipses et des courbes de Bézier, etc.
Pourquoi utiliser les outils Imagemagick ?
Pour nous Photographes, Imagemagick va essentiellement permettre de convertir, redimensionner, accentuer, ajouter une signature ou un cadre sur une image en ligne de commande (et donc de façon automatique très simplement). Bien sûr il est possible de faire beaucoup d'autres choses mais on sort bien souvent de notre contexte photo ...
Quels outils pour la Photographie ?
Les deux outils utiles aux fins présentées ci-dessus sont convert et mogrify. J'ajoute composite pour intégrer une signature à vos images..
Dans les faits les deux outils partagent beaucoup de fonctions (redimensionnement, etc ..) la principale différence est que convert ne touche pas à l'image originale, certaines fonctions ne sont supportées que par convert ou que par mogrify, je vous invite à lire la doc sur le site officiel si vous voulez mettre un peu les mains dans le cambouis ...
Quelles fonctions sont intéressantes ?
De par mon expérience, je dirais que pour la majorité des utilisateurs, l'utilisation de ces outils permettra :
Syntaxe et Exemples
(voir posts suivants)
Message édité par Brik le 23-12-2008 à 17:01:25
---------------
Flick r | Imagemagick/Mogrify/Convert