2016-07-27 15 views
0

私は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. 

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'を式に置き換えることもできます。

これはサポートされているかどうかという疑問があります。

[1]バージョン:これはサポートされている場合はImageMagick 7.0.2-5 Q16 x64の2016年7月22日http://www.imagemagick.org

答えて

1

私は質問は推測がある(ない場合は、なぜHではありませんか)?

これはサポートする必要がありますが、fx:プロトコルを使用して値を計算することをお勧めします。

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

out_fill

私はあなたがauthentic pixelsの範囲の外に引き出すためにあなたの出発としてNonconformingDrawingPrimitiveDefinitionを見ていると思います。列/行のインデックスは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

+0

あなたの答えをありがとうございました。残念ながら、それは私のためには機能しません。私はcmdスクリプトから変換を実行します。 'convert'は、draw rectangleコマンドで%[]属性を受け付けていないようです。最小のエラー量を得るために '-draw '矩形0,0 %% [w-1]、42" 'を使用しましたが、属性を使用しようとするたびにNonconformingDrawingPrimitiveDefinitionが表示されます。 –

+0

'-draw'コマンドは、リリースされたIM(6.9.x)バージョンの%[fx ...]値を受け入れません。それは7時かもしれないが、それはほとんどの人々がまだ持っているものではない。 – Caleb

関連する問題