我可以这样做在图像上绘制一个红色矩形:
convert original.png -fill red -draw "rectangle 10,20 150,40" result.png
150,40是右下角坐标。但是如果我在那里使用%[fx:...]
运算符,就像这样:
convert original.png -fill red -draw "rectangle 10,20 %[fx:w-30],40" result.png
%[fx:w-30]
应该评估图片的宽度减去30.
但是我收到了错误:
转换:不符合图形的原始定义`矩形' @ error / draw.c / DrawImage / 4227。
我也试过单引号(')而不是双引号("),但没有区别。
我的imagemagick版本是7.0.7-36。
我做错了什么?在上面的例子中使用%[fx:...]
运算符的正确方法是什么?
答案 0 :(得分:2)
感谢@GeeMack,解决方案是:使用magick
代替convert
,因此它变为:
magick original.png -fill red -draw "rectangle 10,20 %[fx:w-30],40" result.png
答案 1 :(得分:0)
如果您仍在使用ImageMagick 6,则可以使用identify
命令输出格式化的字符串,然后在convert
命令中使用它。使用shell语法,可以表示如下:
convert original.png -fill red -draw "$(identify -format 'rectangle 10,20 %[fx:w-30],40' original.png)" result.png