0

私はこのスクリプトを書きましたが、問題なく動作していますが、余分な一時イメージなしで、その場ですべてをワンステップで実行したいと考えています。

説明: 壊れた画像ファイルがたくさんあり、各画像の下に円を描きたいです。このために、一時的な画像 circle.png を作成し、「image DstOver」を使用して各画像の下に配置する必要があります。

convert -size 200x200 xc:transparent -fill red -draw 'translate 100,100 circle 0,0 100,0' circle.png
mogrify -draw "image DstOver 0,0 0,0 'circle.png'" images/*.png

次のようなもの:

mogrify -fill red -draw "DstOver translate 100,100 circle 0,0 100,0" images/*.png

しかし、DstOver をどこに配置しても、常にエラーが発生します。

mogrify: non-conforming drawing primitive definition `DstOver' @ error/draw.c/DrawImage/3169.
4

2 に答える 2

1

あなたが何をしようとしているのかはわかりませんが、一般的に、またはmogrifyで何かを行うのに問題があります。私が知っている唯一の例外はオペレーターであるため、事前にイメージを作成してから使用する必要があります。multi-image operatorsstack operators-draw image

# Blue rectangle with transparent centre
convert -size 200x200 xc:none -bordercolor blue -border 50 start.png

ここに画像の説明を入力

# Your circle
convert -size 200x200 xc:white -fill red -draw 'translate 100,100 circle 0,0 100,0' circle.png

ここに画像の説明を入力

# Now underlay
mogrify -draw "image DstOver 0,0 0,0 'circle.png'" start.png

ここに画像の説明を入力

于 2016-07-17T15:36:09.323 に答える