如何在一个命令中使用 mogrify 隐藏圆圈
How to underlay circle with mogrify in one command
我写了这个脚本,它运行良好,但我想在没有额外的临时图像的情况下一步完成所有这些。
说明:我有很多损坏的图像文件,我想在每个图像下面画一个圆圈。为此,我必须创建一个临时图像 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.
像"DstOver"这样的组合运算符只能与“-draw”的"image"原语一起使用。只是省略它。请参阅 ImageMagick commandline 文档中的“-draw”条目。
您可以有多个“-draw”选项,一些绘图图形如 "circle ..." 和其他如 "image DstOver ..."。
我不确定你想做什么,但一般来说,mogrify
用 multi-image operators
或 stack 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
我写了这个脚本,它运行良好,但我想在没有额外的临时图像的情况下一步完成所有这些。
说明:我有很多损坏的图像文件,我想在每个图像下面画一个圆圈。为此,我必须创建一个临时图像 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.
像"DstOver"这样的组合运算符只能与“-draw”的"image"原语一起使用。只是省略它。请参阅 ImageMagick commandline 文档中的“-draw”条目。
您可以有多个“-draw”选项,一些绘图图形如 "circle ..." 和其他如 "image DstOver ..."。
我不确定你想做什么,但一般来说,mogrify
用 multi-image operators
或 stack 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