Bash 变量中的 Imagemagick 参数未正确解释?
Imagemagick parameters in Bash variables are not interpreted properly?
我需要使用 Imagemagick 以 canvas 作为基础和其他一些图像作为基础动态合成图像。
目前,最简单的方案可以正常工作(请注意,您需要两个名为 src1.png
和 src2.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
我需要使用 Imagemagick 以 canvas 作为基础和其他一些图像作为基础动态合成图像。
目前,最简单的方案可以正常工作(请注意,您需要两个名为 src1.png
和 src2.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