2012-06-06 62 views
1

我想使用Imagemagick中的「convert」(或其他)來組合兩個不同大小的圖像。我希望他們在左下角對齊。例如,我有兩個圖像:Imagemagick命令行,結合兩個不同大小的圖像

trans_alpha.png(透明42x37空白圖像) 和shadow.png(一個68x23圖像,其欲覆蓋在trans_alpha.png左下角對齊)

我想要的結果是一個68x37的圖像,注意這些大小隻是示例,我不想把大小放入命令行,我只是想使用輸入圖像的大小。

我試過很多沒有成功的組合:

嘗試no。 776(靠近,但對齊左上角,而不是左下角):

convert trans_alpha.png -background none shadow.png -gravity SouthWest -layers merge +repage result.png 

嘗試no。 841(正確對齊,但結果圖像不夠寬)...

convert trans_alpha.png shadow.png -gravity SouthWest -composite result.png 

希望這是有道理的。 謝謝,

保羅

回答

2

在回答我自己的問題(的聰明人對www.imagemagick.org提供)

convert \ 
    trans_alpha.png shadow.png \ 
-flip \ 
-background none \ 
-mosaic \ 
-flip \ 
    result.png 
1

ImageMagick的包括許多有用的轉換,但偶爾還是缺乏一個你需要的。由於您的原始圖像是PNG無損位圖,因此您可以將它們轉換爲長格式PBM或長格式PPM等相關格式。這些形式的優點是,它們以純文本方式逐個像素地表示整個圖像,哪個人可以編寫程序 - 通常是一個相當短的程序 - 以任何人喜歡的方式進行處理。作爲存儲格式,PBM和PPM的效率非常低,但它們同樣非常容易操作,這就是你想要的。

pbm(5)手冊頁(例如在Debian/Ubuntu系統中的netpbm軟件包中)可以很好地編寫並清楚地解釋該過程。

+0

謝謝,有趣的選擇,但比較理想的狀況,我想一個基於Imagemagick的解決方案,而不必寫一個腳本/程序來做我想做的事情。當然,如果我沒有看到PBM,那麼對於很多事情來說這是一個有用的想法,再次感謝。 –

+0

convert trans_alpha.png shadow.png -flip -background none -mosaic -flip result.png –

0

我當時無法測試,但你可以使用-page與層等等這樣的事情可能會奏效,但你可能需要計算的Y軸偏移:

convert \ 
    trans_alpha.png \ 
    -background none \ 
    shadow.png \ 
    -page +0+10 \ 
    -layers merge \ 
    +repage \ 
    result.png 

您可能不需要-background無

+0

Thanks @Bonzo,我試過了(有/沒有「-background none」),但偏移似乎沒有區別不管我給予什麼樣的價值(我之前正在嘗試「-0-0」) - 總是得到同樣的結果。 –

+0

你需要在「shadow.png」之前放置-page。 – 2014-05-26 08:21:26

相關問題