2012-08-06 106 views
4

我有幾個15x15 PNG需要轉換爲18x18 PNG。使用命令行將透明像素線添加到圖像

但是,我不想簡單地縮放整個圖像。

我想要的基本上是保持原來的形象,但用不可見/透明像素的線「填充」它。

所以我們可以說原始圖像看起來像這樣(想象X s爲像素):

XXXX 
XXXX 
XXXX 
XXXX 

我希望把它變成像這樣(X是原始圖像的像素,T是新的透明像素):

XXXXT 
XXXXT 
XXXXT 
XXXXT 
TTTTT 

這可能使用命令行工具(所以,這是可以自動的),也許像ImageMagick的?

+0

我認爲這相當屬於超級用戶。 – 2012-08-06 18:13:16

+0

@ H2CO3:取決於你是否認爲bash是一種編程語言,我猜。隨意移動這個。 – houbysoft 2012-08-06 18:49:56

+0

我有一種強烈的感覺,你所尋找的就像'convert -extend ....'(imagemagick)。但我不是專家...... – 2012-08-06 19:00:48

回答

3

這將做的工作:

convert input_file -background transparent -extent '18x18' output_file 
3

你可以做到這一點與ImageMagick的-append+append運營商。 -append附加到垂直(底部),+append附加水平(右):

convert \ 
    -background transparent \ 
    15x15.png \ 
    null: null: null: +append \ 
    null: null: null: -append \ 
    18x18.png 

null:畫面是ImageMagick的內置:它代表一個1個透明像素。

但是,與IM通常情況一樣:有上千種方法可以達到同一目標。

如果您需要將透明部分添加到左側和頂部(而不是右側和底部),或者應該將像素添加到一個或三個或四個(而不是僅兩個你應該很明顯的知道如何修改我的命令

也許你會發現Theodros的答案更直觀(+1對它來說!)在這種情況下,如果你想改變你添加的邊界像素,可以將-gravity參數添加到他的命令:

convert infile -background transparent -gravity southeast -extent '18x18' outfile 

south其他,你也可以用northnortheast,east,...和northwest。不要忘記center ...