2012-08-29 89 views
33
convert input.png -extent 100x100 -gravity center -background white output.png 

如果輸入爲50x50,則周圍背景爲白色。我可以以某種方式將其設置爲透明而不必將輸入內的任何顏色聲明爲透明?ImageMagick使用透明背景的延伸畫布

回答

71

使用這個代替:

convert    \ 
     input.png  \ 
    -background none \ 
    -gravity center \ 
    -extent 100x100 \ 
     output.png 

注意哦:這些命令的參數之一是顯著! (要說服自己,只要把-background none的參數,而不是開始的結束......)


更新時間:感謝@jesmith誰注意到了我最初提供的命令行也不再像以前那樣工作意。 convert的更新版本還要求在-extent 100x100之前將-gravity center稱爲。 (這是在ImageMagick最新版本[最初編寫此答案時]引入的更改之一))。

+7

事實上的順序很重要,你聽錯了!你需要在-extent之前放置-gravity,否則它將不起作用。嘗試 - 重力東南來看看我的意思。 –

+2

@jesmith:謝謝你的提示。 –

+1

它看起來最後的文字被切斷了... –

8

Kurt的筆記很諷刺地發現,順序很重要。 Kurt的命令導致gravity不適用於extent,所以透明的'邊框'將全部放在圖像的底部和/或右側。

extent之前移動gravity將在所有適用的邊上正確地創建相等的透明「邊框」。

轉換input.jpg -Background沒有-gravity中心-extent 100x50 output.png

+0

** + 1 **並感謝您的額外答覆,指出了'重力中心'現在需要的命令行順序。我沒有看到它,也沒有看到@史密斯先生的評論,儘管他已經在13年5月指出了這一點。 –