2016-12-16 66 views
1

我需要使用Imagemagick以畫布作爲基礎和其他一些圖像來構成一幅圖像。Bash變量中的Imagemagick參數沒有正確解釋?

目前,最簡單的場景只是工作(請注意,您將需要一個名爲src1.pngsrc2.png兩個圖像這個工作):

convert src1.png -gravity northwest -draw 'image Over 10,10 0,0 "src2.png"' result.png 

不過,我需要dinamically僞造這些參數能夠在src1.png的頂部繪製一個,兩個或多個圖像。

爲此,我嘗試將參數存儲在變量中,然後進行替換。我想這兩個版本,都與陣列或簡單的字符串:

DRAWOPTS=(-draw 'image Over 10,10 0,0 \"src2.png\"') 
convert src1.png -gravity northwest ${DRAWOPTS[@]} result.png 

DRAWOPTS="-draw 'image Over 10,10 0,0 \"src2.png\"'" 
convert src1.png -gravity northwest $DRAWOPTS result.png 

但我總是得到這些錯誤:

convert.im6: non-conforming drawing primitive definition `image' @ error/draw.c/DrawImage/3160. 
convert.im6: unable to open image `Over': No such file or directory @ error/blob.c/OpenBlob/2641. 
convert.im6: no decode delegate for this image format `Over' @ error/constitute.c/ReadImage/544. 
convert.im6: unable to open image `10,10': No such file or directory @ error/blob.c/OpenBlob/2641. 
convert.im6: no decode delegate for this image format `10,10' @ error/constitute.c/ReadImage/544. 
convert.im6: unable to open image `0,0': No such file or directory @ error/blob.c/OpenBlob/2641. 
convert.im6: no decode delegate for this image format `0,0' @ error/constitute.c/ReadImage/544. 
convert.im6: unable to open image `"src2.png"'': No such file or directory @ error/blob.c/OpenBlob/2641. 
convert.im6: no decode delegate for this image format `"src2.png"'' @ error/constitute.c/ReadImage/544. 
convert.im6: non-conforming drawing primitive definition `image' @ error/draw.c/DrawImage/3160. 

我不能得到這個工作。需要這個引用地獄的一些幫助,請。

回答

1

您需要引用數組的擴展。

DRAWOPTS=(-draw 'image Over 10,10 0,0 "src2.png"') 
convert src1.png -gravity northwest "${DRAWOPTS[@]}" result.png 
+0

我以爲我已經嘗試過,但顯然我錯過了一些東西。可能我一直在''''裏面''''逃脫,那永遠不會工作,謝謝! –