如何在“绘制矩形”命令中使用imagemagick属性?

如何在“绘制矩形”命令中使用imagemagick属性?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我试图用convert[1]在图像的整个宽度上绘制一个矩形。我正试图用它来实现这一点 我使用的命令是: convert ImageFile -fill black -stroke black -draw "rectangle 0,0 %[w],42" ImageFileNew 我得到的结果是: convert: NonconformingDrawingPrimitiveDefinition `rectangle' @ error/draw.c/DrawImage/3271. 使用调试: co

我试图用
convert
[1]在图像的整个宽度上绘制一个矩形。我正试图用它来实现这一点

我使用的命令是:

convert ImageFile -fill black -stroke black -draw "rectangle 0,0 %[w],42" ImageFileNew
我得到的结果是:

convert: NonconformingDrawingPrimitiveDefinition `rectangle' @ error/draw.c/DrawImage/3271.
使用调试:

convert ImageFile -fill black -stroke black -draw "rectangle 0,0 %[w],42" ImageFileNew
我得到:

2016-07-27T14:55:37+02:00 0:00.047 0.047u 7.0.2 Draw CONVERT[6660]: draw.c/DrawImage/1755/Draw
  begin draw-image
2016-07-27T14:55:37+02:00 0:00.047 0.047u 7.0.2 Draw CONVERT[6660]: draw.c/DrawImage/3207/Draw
  rectangle 0,0
2016-07-27T14:55:37+02:00 0:00.047 0.047u 7.0.2 Draw CONVERT[6660]: draw.c/DrawImage/3258/Draw
  end draw-image
CONVERT: NonconformingDrawingPrimitiveDefinition `rectangle' @ error/draw.c/DrawImage/3271.
我不想使用临时文件,我希望在修剪重新分页后最终使用此文件。如果可以在此命令中使用属性,我还想用公式替换“42”

我想问题是这是否得到支持(如果不支持,为什么H不支持)

[1] 版本:ImageMagick 7.0.2-5 Q16 x64 2016-07-22

我想问题是这是否得到支持(如果不支持,为什么H不支持)

应该支持它,但我建议使用
fx:
协议来计算值

convert rose: -fill red \
       -draw 'rectangle 0 0 %[fx:w] %[fx:h]' \
       out_fill.png

我猜您将
非一致性DrawingPrimitiveDefinition
视为您开始绘制超出范围的图形。请记住,列/行索引从
0
开始,一直到
nth-1

convert rose: -fill red -stroke black -strokewidth 2 \
              -draw 'rectangle 0 0 %[fx:w-1] %[fx:h-1]' \
              out_stroke.png

谢谢您的回答。不幸的是,这对我不起作用。我从cmd脚本运行convert<代码>转换似乎不接受“绘制矩形”命令中的任何%[]属性。我使用了
-draw“矩形0,0%%[w-1],42”
以获得最少的错误,每次尝试使用属性时都会出现不一致的DrawingPrimitiveDefinition。在发布的(6.9.x)版本的IM中,
-draw
命令不接受%[fx…]值。可能在7年后,但这不是大多数人都有的。2年后,这似乎仍然不起作用?我试过7.0.8-11和7.0.8-14,但没有成功。好的,如中所述,您应该使用
magick
而不是
convert