ImageMagick扩展了透明背景的画布

Tob*_*oby 47 png transparency background imagemagick

convert input.png -extent 100x100 -gravity center -background white output.png
Run Code Online (Sandbox Code Playgroud)

如果输入为50x50,则周围背景为白色.我可以以某种方式将其设置为透明而不将输入中的任何颜色声明为透明吗?

Kur*_*fle 93

请改用:

convert               \
      input.png       \
     -background none \
     -gravity center  \
     -extent 100x100  \
      output.png
Run Code Online (Sandbox Code Playgroud)

注意:参数的顺序很重要!(说服自己,只是把-background none参数放在最后而不是开始...)


更新:感谢@jesmith,他注意到我最初提供的命令行不再按预期工作.更新的版本convert还要求之前-gravity center调用.(这是一个ImageMagick最新版本[最初写这个答案的时候]引入的变化之一). -extent 100x100

  • 确实,订单很重要,你弄错了!你需要在-extent之前放置-gravity,否则它将无效.尝试-gravity SouthEast来看看我的意思. (7认同)
  • @jesmith:谢谢你的提示. (2认同)

epr*_*hro 8

库尔特的说明具有讽刺意味,订单很重要.Kurt的命令导致gravity未应用于extent,因此透明的"边框"将全部位于图像的底部和/或右侧.

gravity之前移动extent将在所有适用的侧面正确创建相同的透明"边框".

convert input.jpg -background none -gravity Center -extent 100x50 output.png