2016-12-16 7 views
1

私はImagemagickをベースとしたキャンバスとその上のいくつかの画像を使って画像をdinamically合成する必要があります。Bash変数のImagemagickパラメータは正しく解釈されませんか?

現在、最も簡単なシナリオは、ちょうど(あなたが仕事にsrc1.pngし、このためsrc2.pngという名前の2つの画像が必要になります何卒ご了承下さい)動作します。

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

しかし、私はdinamically、これらのパラメータのことができるようにするために偽造する必要がありますsrc1.pngの上に1つ、2つ以上の画像を描画します。

これを行うには、変数にパラメータを格納してから置換を試みました。

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 

しかし、私は常にこれらのエラーを取得::私は、アレイとし、単純な文字列の両方で、この2つのバージョン、試してみました

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

私はすでにそれを試みたと思っていましたが、明らかに私は何かが欠けていました。おそらく、私はいつも '' '' ''の中でエスケープしていたでしょうし、それは今まで働かないでしょう。ありがとう! –

関連する問題