2016-12-30 55 views
0

我有一組源PNG圖像,我想用它們的一部分來組裝最終的PNG圖像。零件是矩形的,不會在目的地上重疊,但尺寸不同。有時它是整個源圖像,有時只是一個小節。我想多次編輯源文件並每次重新組裝最終映像,因此我試圖使用sh和Imagemagick編寫腳本來完成它。用ImageMagick組裝圖像(圖像裁剪語法)

我嘗試這樣

convert \ 
-size 512x512 null:\ 
-page +96+32 source_a.png\ 
-page +96+0 source_b.png[32x32+16+16] \ 
-background transparent\ 
-layers merge\ 
destination.png 

(只是與兩個源圖像出於說明) 我希望所有的source_a.png和一塊source_b.png。首先是確定的,但使用上source_b.png的「內聯作物」語法給我一個錯誤:

convert: geometry does not contain image `source_b.png' @ warning/transform.c/CropImage/666. 

的圖像是足夠大:

$ identify source_b.png 
source_b.png PNG 64x48 64x48+0+0 8-bit sRGB 3.7KB 0.000u 0:00.000 

什麼是做到這一點的最好方法是什麼?我在MacOS上使用ImageMagick 6.9.7-0 Q16 10.12

回答

2

另一種可能是使用-geometry-composte來達到同樣的效果:

convert -size 512x512 xc:white       \ 
    source_a.png    -geometry +96+32 -composite \ 
    source_b.png[32x32+16+16] -geometry +96+0 -composite \ 
    result.png 
+0

哇!更清潔的解決方案 – emcconville

2

PNG將保留來自內聯剪裁的分頁,因此添加頁面將通過ROI越界。我成像它會更簡單-repage聯機裁剪,然後嘗試清除先前的分頁&設置新頁面。

convert -size 512x512 null: \ 
     -page +96+32 source_a.png \ 
     \(source_b.png[32x32+16+16] -repage +96+0 \) \ 
     -background transparent\ 
     -layers merge\ 
     destination.png