在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,输出错误。
有没有办法做到这一点,而不必写出两个中间图像?理想情况下,我可以将图像放在背景上,然后在背景图像的坐标空间中做角落针。任何想法都会非常有用。
非常感谢!
答案 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