convert input.png -extent 100x100 -gravity center -background white output.png
如果输入为 50x50,则周围的背景为白色。我可以以某种方式将其设置为透明而不将输入中的任何颜色声明为透明吗?
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
调用。(这是对 ImageMagick 的最新版本 [在最初编写此答案时] 引入的更改之一)。 -extent 100x100
具有讽刺意味的是,Kurt 的注释恰到好处,顺序非常重要。Kurt 的命令导致gravity
不应用于extent
,因此透明的“边框”将全部位于图像的底部和/或右侧。
前移将正确地gravity
在extent
所有适用的边上创建相同的透明“边界”。
转换 input.jpg -background none -gravity Center -extent 100x50 output.png