使用ImageMagick的多个命令

时间:2016-07-07 20:48:06

标签: imagemagick

我有以下文件: background.jpg element1.jpg element2.jpg

我想取element1.jpg,将其调整为300x300,将其放在background.jpg上,然后取出element2.jpg,将其调整为400x400并将其放在背景上。我不希望背景调整大小。

这是我目前的命令。似乎调整400x400!应用于内存中的所有先前图像(background.jpg和element1.jpg),而不是一个特定的图像。

convert background.jpg -page +0+0 -resize 300x300! element1.jpg -page +0+0 -resize 400x400! element2.jpg -layers flatten output.jpg

有没有办法在不创建tmp文件夹的情况下完成此操作以保存“中间步骤”并在一个命令中完成所有操作?或者,有没有办法使用“括号”来指定首先运行哪些命令?

1 个答案:

答案 0 :(得分:2)

您可以使用括号来确保操作符仅适用于特定图像,如下所示:

convert background.jpg \
   \( element1.jpg -resize NNN \) -composite \
   \( element2.jpg -resize MMM \) -composite result.jpg

因此,如果我们创建3个测试图像,大小相同,为600x400像素:

convert -size 600x400 xc:red    red.png
convert -size 600x400 xc:yellow yellow.png
convert -size 600x400 xc:blue   blue.png

我们现在可以单独调整大小并定位它们:

convert blue.png \
   \( red.png    -resize 80x50!   \) -geometry +20+100  -composite  \
   \( yellow.png -resize 200x200! \) -geometry +200+150 -composite result.png

enter image description here