如何在ImageMagick中连接Corner Pin和Composite?

时间:2012-09-12 15:11:55

标签: imagemagick

在ImageMagick中,我可以通过三个不连续的步骤创建复合材料。我将第一张图像转角,然后转动第二张图像。然后我合成并将这两个图像放在背景图像的顶部:

convert .\source1.png -matte -virtual-pixel transparent -distort Perspective '0,0,27,211 0,278,197,266 500,0,176,19 500,278,323,48' source1a.png
convert .\source2.png -matte -virtual-pixel transparent -distort Perspective '0,0,2,72 0,278,86,181 500,0,215,2 500,278,311,85' source2a.png
convert .\card.png -page +253+41 .\source2a.png -page +0+98 .\source1a.png -layers flatten fred4.png

出于某种原因,Windows没有像我期望的那样响应将这些命令分组在括号中:

convert .\card.png -page +253+41 (.\source1.png -matte -virtual-pixel transparent -distort Perspective '0,0,27,211 0,278,197,266 500,0,176,19 500,278,323,48') -page +0+98 (.\source2.png -matte -virtual-pixel transparent -distort Perspective '0,0,2,72 0,278,86,181 500,0,215,2 500,278,311,85') -layers flatten fred4.png

出于某种原因,当我执行上述命令时,它会为每个图像打开Viewers,输出错误。

有没有办法做到这一点,而不必写出两个中间图像?理想情况下,我可以将图像放在背景上,然后在背景图像的坐标空间中做角落针。任何想法都会非常有用。

非常感谢!

1 个答案:

答案 0 :(得分:1)

当您使用括号对命令进行分组时,必需会在()上留下(至少)一侧空白 字符。这是有据可查的,并且所有示例都显示了它! (在Unix上,人们甚至可以逃避它们并使用\(\)来分组ImageMagick命令。)

所以这应该适用于Windows:

convert                   ^
  card.png                ^
 -page +253+41            ^
    (                     ^
      source1.png         ^
     -matte               ^
     -virtual-pixel transparent ^
     -distort Perspective '0,0,27,211 0,278,197,266 500,0,176,19 500,278,323,48' ^
    )                     ^
 -page +0+98              ^
    (                     ^
      source2.png         ^
     -matte               ^
     -virtual-pixel transparent ^
     -distort Perspective '0,0,2,72  0,278,86,181  500,0,215,2  500,278,311,85'  ^
    )                     ^
 -layers flatten          ^
  fred4.png