Bash 变量中的 Imagemagick 参数未正确解释?

Imagemagick parameters in Bash variables are not interpreted properly?

我需要使用 Imagemagick 以 canvas 作为基础和其他一些图像作为基础动态合成图像。

目前,最简单的方案可以正常工作(请注意,您需要两个名为 src1.pngsrc2.png 的图像才能正常工作):

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

但是,我需要动态地伪造这些参数才能在 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.

而且我无法让它工作。需要一些关于这个引用地狱的帮助。

需要引用数组的扩展

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