2016-07-07 58 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