28 votes

Utilisez ImageMagick pour placer une image dans un canevas plus grand

Pour commencer avec ImageMagic et essayer de trouver un moyen de le faire ... Si une image mesure moins de 50 pixels de haut ou 50 pixels de large, je voudrais la placer (sans échelle) au centre horizontal / vertical d'un nouvelle toile de 50 x 50 pixels sur un fond blanc - et enregistrez-la en tant que nouvelle image. Quelqu'un sait si c'est possible avec ImageMagick? Merci!

67voto

Jared Points 1346

J'ai utilisé -extent pour ce faire:

 convert input.jpg -gravity center -background white -extent 50x50  output.jpg
 

3voto

Adam Rosenfield Points 176408

Voir coupe et bordure pour un grand nombre d'exemples. Voici une façon simple de procéder:

 convert input.png -bordercolor Black -border 5x5 output.png
 

Bien sûr, vous devrez calculer la taille de la bordure à ajouter (le cas échéant) en fonction des dimensions de l'image d'entrée. Utilisez-vous une API ImageMagick ou simplement les outils de ligne de commande?

2voto

Josh Points 21

J'ai essayé ceci:

 convert test.jpg -resize 100x100 -background black -gravity center -extent 100x100 output.png
 

1voto

Douglas Sellers Points 279

Pour ce faire, vous pouvez utiliser une seule composition . Donc, cela ressemblerait à quelque chose comme ceci:

convert -size 50x50 xc:white null: ( my_image.png -coalesce ) -gravity Center -layers Composite -layers Optimize output.png

1voto

user1309871 Points 144

Pour modifier l'image source, vous devez utiliser mogrify:

 mogrify -gravity center -background white -extent 50x50  source.jpg
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X