Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
ressource:logiciel:imagemagick:composition_images [2020/05/07 17:20] emoc [Composition d'images avec Imagemagick] |
ressource:logiciel:imagemagick:composition_images [2020/05/12 14:36] (Version actuelle) emoc [Composition avec transparence (alpha channel)] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>image code shell em}} | + | {{tag>image imagemagick code shell em}} |
| ====== Composition d'images avec Imagemagick ====== | ====== Composition d'images avec Imagemagick ====== | ||
| Quelques exemples de composition d'images | Quelques exemples de composition d'images | ||
| + | |||
| + | ===== Superpositions ===== | ||
| **Images de base** | **Images de base** | ||
| - | {{:ressource:logiciel:imagemagick:a.png?direct|}} {{:ressource:logiciel:imagemagick:zz.png?direct|}} {{:ressource:logiciel:imagemagick:fond.png?direct|}} | + | [{{:ressource:logiciel:imagemagick:a.png?direct|a.png}}] |
| + | [{{:ressource:logiciel:imagemagick:zz.png?direct|zz.png}}] | ||
| + | [{{:ressource:logiciel:imagemagick:fond.png?direct|fond.png}}] | ||
| De gauche à droite : A rouge sur fond blanc (100x100 pixels), 'zz' noir sur fond transparent (200x200 pixels), fond jaune (200x200 pixels) | De gauche à droite : A rouge sur fond blanc (100x100 pixels), 'zz' noir sur fond transparent (200x200 pixels), fond jaune (200x200 pixels) | ||
| - | ===== Superpositions ===== | + | Pour les exemples ci-dessous, les images sont placées de la manière suivante : |
| + | |||
| + | {{:ressource:logiciel:imagemagick:superposition.png?direct&400|}} | ||
| ==== Superposition simple ==== | ==== Superposition simple ==== | ||
| Ligne 19: | Ligne 25: | ||
| # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | ||
| convert -size 200x200 canvas:yellow a.png zz.png -layers flatten comp_001.png | convert -size 200x200 canvas:yellow a.png zz.png -layers flatten comp_001.png | ||
| + | |||
| + | {{:ressource:logiciel:imagemagick:comp_001.png?direct|}} | ||
| ==== Superposition avec décalage ==== | ==== Superposition avec décalage ==== | ||
| Ligne 27: | Ligne 35: | ||
| # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | ||
| convert -size 200x200 canvas:yellow -page +0+25 a.png -page -100+0 zz.png -layers flatten comp_002.png | convert -size 200x200 canvas:yellow -page +0+25 a.png -page -100+0 zz.png -layers flatten comp_002.png | ||
| + | |||
| + | {{:ressource:logiciel:imagemagick:comp_002.png?direct|}} | ||
| ==== Superpositions avec décalage, mise à l'échelle, découpe ==== | ==== Superpositions avec décalage, mise à l'échelle, découpe ==== | ||
| Ligne 33: | Ligne 43: | ||
| Les images sont en pile : fond jaune, par dessus : a.png, par dessus : zz.png placées à partir du point en haut à gauche \\ | Les images sont en pile : fond jaune, par dessus : a.png, par dessus : zz.png placées à partir du point en haut à gauche \\ | ||
| La première image est redimensionnée et placée par l'opérateur geometry à 100 pixels de distance du point en haut à gauche \\ | La première image est redimensionnée et placée par l'opérateur geometry à 100 pixels de distance du point en haut à gauche \\ | ||
| + | |||
| + | Les parenthèses permettent de modifier l'image concernée avant qu'elle soit placée dans la liste principale. Elles sont précédées d'un antislash pour être correctement interprétées par le shell. | ||
| # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | ||
| convert -size 200x200 canvas:yellow \( a.png -resize 50x50 \) -geometry +50+50 -composite \( zz.png -crop 100x60+60+50 \) -geometry +100+100 -composite comp_003.png | convert -size 200x200 canvas:yellow \( a.png -resize 50x50 \) -geometry +50+50 -composite \( zz.png -crop 100x60+60+50 \) -geometry +100+100 -composite comp_003.png | ||
| + | {{:ressource:logiciel:imagemagick:comp_003.png?direct|}} | ||
| Superposer 3 images et les aplatir, l'image de destination fera la taille définie par size \\ | Superposer 3 images et les aplatir, l'image de destination fera la taille définie par size \\ | ||
| Ligne 42: | Ligne 55: | ||
| # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | # 20200507 / ImageMagick 6.9.7-4 Q16 x86_64 / Debian Stretch 9.5 @ Kirin | ||
| convert -size 200x200 canvas:yellow \( a.png -resize 50x50 \) -geometry +50+50 -composite \( zz.png -crop 100x60+60+50 -resize 50x50 \) -geometry +100+100 -composite comp_004.png | convert -size 200x200 canvas:yellow \( a.png -resize 50x50 \) -geometry +50+50 -composite \( zz.png -crop 100x60+60+50 -resize 50x50 \) -geometry +100+100 -composite comp_004.png | ||
| + | |||
| + | {{:ressource:logiciel:imagemagick:comp_004.png?direct|}} | ||
| ==== Superpositions avec décalage, mise à l'échelle, rotation ==== | ==== Superpositions avec décalage, mise à l'échelle, rotation ==== | ||
| Ligne 48: | Ligne 63: | ||
| convert -size 200x200 canvas:yellow \( a.png -background none -rotate 45 \) -geometry +50+50 -composite \( zz.png -resize 100x100 -background none -rotate 60 \) -geometry +100+100 -composite comp_005.png | convert -size 200x200 canvas:yellow \( a.png -background none -rotate 45 \) -geometry +50+50 -composite \( zz.png -resize 100x100 -background none -rotate 60 \) -geometry +100+100 -composite comp_005.png | ||
| + | {{:ressource:logiciel:imagemagick:comp_005.png?direct|}} | ||
| + | |||
| + | ===== Composition avec transparence (alpha channel) ===== | ||
| + | |||
| + | **Images de base** | ||
| + | |||
| + | [{{:ressource:logiciel:imagemagick:m_trans.png?direct|m.png}}] | ||
| + | [{{:ressource:logiciel:imagemagick:motif.png?direct|motif.png}}] | ||
| + | |||
| + | De gauche à droite : M blanc sur fond transparent (200x200 pixels), motif (200x200 pixels) | ||
| + | |||
| + | **Etapes intermédiaires** | ||
| + | |||
| + | Plusieurs étapes intermédiaires pour arriver au résultat recherché (à droite) | ||
| + | |||
| + | [{{:ressource:logiciel:imagemagick:comp_009.png?direct|comp_009.png}}] | ||
| + | [{{:ressource:logiciel:imagemagick:motif2.png?direct|motif2.png}}] | ||
| + | [{{:ressource:logiciel:imagemagick:comp_010_trans.png?direct|comp_010.png}}] | ||
| + | [{{:ressource:logiciel:imagemagick:comp_011.png?direct|résultat}}] | ||
| + | |||
| + | <code> | ||
| + | convert -size 200x200 canvas:white \( motif.png -resize 200% -rotate 60 -crop 200x200+100+100 \) -composite comp_009.png | ||
| + | convert -size 200x200 canvas:white \( motif.png -resize 200% -rotate 30 -crop 200x200+100+100 \) -composite motif2.png | ||
| + | composite -compose In motif2.png m.png comp_010.png | ||
| + | convert comp_009.png comp_010.png -composite comp_011.png # resultat | ||
| + | </code> | ||
| + | |||
| + | La troisème étape utilise la commande **composite** d'Imagemagick, elle est associée à un opérateur **-compose** et un mot-clé **In** qui définit la manière dont les pixels des deux images seront mélangés. \\ | ||
| + | Il y a 4 grands types de composition : | ||
| + | * les opérateurs mathématiques (Multiply, Screen, Difference, Divide, etc.) | ||
| + | * les méthodes de composition Duff-Porter (Over, In, Out, Xor, etc.) | ||
| + | * les méthodes de composition basées sur la luminosité (Hard light, Soft light, Color dodge, etc.) | ||
| + | * les méthodes de composition basées sur les canaux : rouge, vert, bleu, alpha, saturation, luminosité, teinte | ||
| + | Dans la documentation on trouve des détails sur les [[http://www.imagemagick.org/Usage/compose/|différentes méthodes de composition]] et une [[http://www.imagemagick.org/Usage/compose/tables/|table de composition]] qui montre le résultat de chacune de ces méthodes (très pratique!) | ||
| + | |||