2016-07-07 37 views
0

多个命令我有以下文件: background.jpg element1.jpg element2.jpg与ImageMagick的

我想借element1.jpg,它调整到300×300,将其放在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

您可以使用括号来确保运营商只适用于特定的图像,像这样:

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

所以,如果我们在600x400像素创建3个测试图像,大小相同:

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