2016-11-05 42 views
1

我想要一個組合命令,可以在單次執行中執行以下任務。我搜索了互聯網,但幾乎找不到任何指導我們編寫任何堆棧命令的教程。我可以爲每個操作中發現單個命令,如-composite-blur,等等,我知道我能管的命令,這樣實用Imagemagick堆棧(組合)複雜命令

convert ... mpr:- | convert ... mpr:- | ... | convert ... png:- 

不過,我想使用\(... \)mpr:{label},因爲這會增加組合命令所有操作在單個進程中執行的性能(shell中的管道可能會降低性能,並且需要按順序執行進程順序)。

enter image description here

工藝順序爲這樣:

  1. flower.png上的frame.png頂部 - >mpr:framedFlower
  2. mpr:framedFlowerbackground.png的頂部 - >mpr:out2
  3. 模糊的heart.png ,右梯度透明的smiley.png並把兩個圖像的頂部mpr:out2 - >mpr:out3
  4. 註釋mpr:out3用的「Hello world」(位置=底部) - > PNG: -

    我不包括我都試過,因爲他們太亂的命令,這將是侮辱那些閱讀過它的用戶。我嘗試了很多小時,但無法完成。請指教。

回答

1

我沒有花了年齡,因爲我只用樣品圖片與精確座標把玩,但是這一個班輪包含所有你需要做你所要求的技術。

有基本上在最終圖像中的每個單元一行代碼:

convert frame.png -resize 500x400\! \(flower.png -resize 400x300\! \) -gravity center -composite \ 
    background.png +swap -gravity northwest -geometry +100+150 -composite \ 
    \(heart.png -resize 200x200 -blur 0x8 \) -geometry +1200+250 -composite \ 
    -gravity south -pointsize 72 -fill red -annotate +0+60 'Hello world' \ 
    \(emoji.png -resize 250x250 -channel a -fx "u.a*(1-(i/w))" \) -gravity northwest -geometry +1200+500 -composite result.png 

enter image description here

的第一行讀出在圖象幀和花和獨立地調整大小它們每個因爲括號的然後將花朵複合到框架中。

下一行加載背景,然後使用+swap放在之後的框架圖片從上一行。然後將-gravity設置爲西北方向,作爲接下來的-geometry的來源,然後將框架圖片合成到背景上。

下一行加載心臟,並在合成到您指定位置的主圖片之前調整並模糊心臟。

接下來是註釋 - 唯一有趣的是我將-geometry設置爲south,這意味着與-annotate的偏移量相對於背景的底部中心。

最後,我加載emoji事物,並在合成主圖像之前將其調整爲括號。唯一有趣的是,我使用-fx來更改alpha通道(-channel a),並將現有透明度(u.a)乘以我們在圖像上的距離的倒數的一部分,即(1-(i/w))

希望相當清楚!

啓動圖像

enter image description here

enter image description here

enter image description here

enter image description here

+0

謝謝,我想它和它的作品。最初,我嘗試了'convert frame.png flower.png -composite -write mpr:a \\(background.png mpr:a -composite -write mpr:b \)\\(mpr:b heart.png -composite - 寫mpr:c \).... png:-'並且它保持失敗。從你的回答中,我意識到我們可以在**圖像棧**中合成圖像,而不是使用'mpr:{label}'。對不起,我遲到的回覆,我花了一段時間重新閱讀這些教程。當我獲得足夠的聲望時,我會贊成,謝謝。 –