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

时间:2016-07-27 13:21:34

标签: imagemagick imagemagick-convert

我正在尝试使用convert [1]在图像的整个宽度上绘制一个矩形。我正在尝试使用ImageMagick Attributes来完成此任务。

我使用的命令是:

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

我得到的输出是:

convert: NonconformingDrawingPrimitiveDefinition `rectangle' @ error/draw.c/DrawImage/3271.

使用debug:

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 http://www.imagemagick.org

1 个答案:

答案 0 :(得分:1)

  

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

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

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

out_fill

我猜你会看到NonconformingDrawingPrimitiveDefinition作为你开始画在authentic pixels范围之外的人。请记住,列/行索引从0开始,到达nth - 1

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

out_stroke