4 votes

Comment superposer plusieurs images avec position et échelle dans ImageMagick ?

Étant donné ces deux images de taille 512x512 avec un fond transparent :

circle.png

entrer la description de l'image ici

inner.png

entrer la description de l'image ici

J'aimerais superposer ces deux images, de manière à ce qu'elles apparaissent centrées et à réduire la taille des images à 64x64. Ma première tentative ressemble à ceci :

convert -background none inner.png circle.png -layers flatten -resize 64x64 output.png

Cela produit :

entrer la description de l'image ici

D'un point de vue design, l'image interne semble un peu trop grande en proportion, donc j'aimerais la réduire un peu. Et malgré le fait qu'elle soit techniquement centrée, j'aimerais la déplacer un peu vers la droite, sans augmenter la largeur totale de l'image. Je pense que cela nécessite d'utiliser -geometry. J'ai essayé de nombreuses combinaisons, mais je n'obtiens jamais l'effet désiré. Par exemple

convert -background none inner.png -geometry 256x256 circle.png -layers flatten -resize 64x64 output.png

produit

entrer la description de l'image ici

En un sens, l'image interne est devenue plus petite en proportion, mais pas de la manière dont je m'y attendais.

Des idées sur comment cela peut être accompli avec ImageMagick ?

3voto

Anaksunaman Points 14675

Vous pouvez souhaiter essayer quelque chose comme ce qui suit :

magick convert circle.png inner.png -gravity Center -geometry 256x256+30+5 -composite -resize 64x64 output.png

Où :

  • -gravity Center dit à ImageMagick de centrer toute "sous-image" (inner.png) par rapport à l'image d'arrière-plan (circle.png).

  • -geometry 256x256+30+5 redimensionne inner.png en 256x256 puis décale sa position de 30 pixels horizontalement vers la droite (+) et de 5 pixels verticalement vers le bas (+). Ce décalage est considéré comme étant relatif à sa position actuelle (impacté par gravity, ci-dessus).

  • -composite prend la première image (circle.png) et superpose la deuxième image (inner.png) selon le paramétrage actuel de -compose (qui se définit par défaut sur une valeur de Over). L'emplacement de l'image superposée (inner.png) est contrôlé par les paramétrages de -gravity et -geometry.

Résultats

ex. Image Composite Finale (-resize 256x256 output.png)

Bouton de Lecture Composite

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X