convert input.png -extent 100x100 -gravity center -background white output.png
入力が50x50の場合、周囲の背景は白になります。入力内の色を透明として宣言せずに、これを何らかの方法で透明に設定できますか?
代わりにこれを使用してください:
convert \
input.png \
-background none \
-gravity center \
-extent 100x100 \
output.png
注:パラメータの順序は重要です! (自分を納得させるには、-background none
開始の代わりにパラメータの最後に...)
更新:最初に提供したコマンドラインが意図したとおりに機能しないことに気付いた@jesmithに感謝します。より最近のバージョンのconvert
では、さらに-gravity center
が呼び出されますbefore-extent 100x100
。 (これはImageMagickの最新バージョンに導入された変更の1つです([この回答を最初に作成した時点で]))。
カートのノートは皮肉なことにスポットされており、順序は非常に重要です。カートのコマンドの結果、gravity
がextent
に適用されないため、透明な「境界線」はすべて画像の下部または右側に配置されます。
gravity
をextent
の前に移動すると、該当するすべての面に等しい透明な「境界線」が正しく作成されます。
input.jpg -background none -gravity Center -extent 100x50 output.pngに変換します