web-dev-qa-db-fra.com

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 nouveau canevas de 50 x 50 pixels sur un fond blanc - et enregistrez-le en tant que nouvelle image. Quelqu'un sait si c'est possible avec ImageMagick? Merci!

58
Mike

J'ai utilisé -extent pour ce faire:

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

Je voulais faire de même, sauf réduire l'image à 70% à l'intérieur. J'ai utilisé ceci:

convert input.png -resize 70%x70% -gravity center -background transparent -extent 72x72 output.png

Pas exactement ce qui a été demandé mais j'espère que cela aidera quelqu'un;).

5
gleenn

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?

4
Adam Rosenfield

J'ai déjà utilisé ce code pour placer une image au centre d'une nouvelle toile avec un fond blanc. J'espère que cela vous aidera

convert -background white -gravity center your_image.jpg -extent 50x50 new_image.jpg
4
Vinu vasudev

J'ai essayé ceci:

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

Vous pouvez utiliser composition unique pour ce faire. Cela ressemblerait donc à ceci:

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

1
Douglas Sellers

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

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