shell imagemagick:如何在绘制矩形命令中使用%[fx:...]操作符?

ufj5ltwl  于 2023-06-06  发布在  Shell
关注(0)|答案(3)|浏览(126)

我可以这样做,在图像上绘制一个红色矩形:
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:...]运算符的正确方法是什么?

23c0lvtd

23c0lvtd1#

感谢@GeeMack,解决方案是:使用magick而不是convert,所以它变成:
magick original.png -fill red -draw "rectangle 10,20 %[fx:w-30],40" result.png

jfgube3f

jfgube3f2#

如果您仍然使用ImageMagick 6,则可以使用identify命令输出格式化字符串,然后在convert命令中使用该字符串。使用shell语法,这可以表示如下:

convert original.png -fill red -draw "$(identify -format 'rectangle 10,20 %[fx:w-30],40' original.png)" result.png
a6b3iqyw

a6b3iqyw3#

测试作品ImageMagick 6 & 7
或者,您可以在convert中使用info:特殊格式说明符来为您计算。

convert original.png -fill red -draw "$(convert original.png -format 'rectangle 10,20 %[fx:w-30],40' info:)" result.png

相关问题