convert input.png -extent 100x100 -gravity center -background white output.png
Si l'entrée est 50x50, l'arrière-plan environnant est blanc. Puis-je définir cela sur transparent sans déclarer aucune couleur dans l'entrée comme transparente?
Utilisez-le à la place:
convert \
input.png \
-background none \
-gravity center \
-extent 100x100 \
output.png
Remarquez bien: L'ordre des paramètres est significatif! (Pour vous convaincre, mettez simplement -background none
à la fin des paramètres au lieu du début ...)
Mise à jour: Merci à @jesmith qui a remarqué que la ligne de commande que j'ai fournie à l'origine ne fonctionne plus comme prévu. Les versions plus récentes de convert
nécessitent en outre que -gravity center
est appelé avant -extent 100x100
. (Ce fut l'une des modifications apportées aux versions les plus récentes d'une ImageMagick [au moment de la rédaction de cette réponse]).
Ironiquement, la note de Kurt est parfaite, l'ordre compte beaucoup. La commande de Kurt a pour résultat que gravity
n'est pas appliqué au extent
, donc la 'bordure' transparente sera tout en bas et/ou à droite de l'image.
Déplacer gravity
avant extent
créera correctement des "bordures" transparentes égales sur tous les côtés applicables.
convert input.jpg -background none -gravity Center -extent 100x50 output.png