我可以这样做,在图像上绘制一个红色矩形: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。
但是我得到一个错误:
convert:不符合绘图基元定义的'rectangle' @ error/draw.c/DrawImage/4227.
我也试过用单引号(')代替双引号(“),但没有什么区别。
我的imagemagick版本是7.0.7-36。
我做错了什么?在上面的例子中,使用%[fx:...]
运算符的正确方法是什么?
3条答案
按热度按时间23c0lvtd1#
感谢@GeeMack,解决方案是:使用
magick
而不是convert
,所以它变成:magick original.png -fill red -draw "rectangle 10,20 %[fx:w-30],40" result.png
jfgube3f2#
如果您仍然使用ImageMagick 6,则可以使用
identify
命令输出格式化字符串,然后在convert
命令中使用该字符串。使用shell语法,这可以表示如下:a6b3iqyw3#
测试作品ImageMagick 6 & 7
或者,您可以在
convert
中使用info:
特殊格式说明符来为您计算。