我想從其他人創建一個圖像,這是convert
操作自己的結果,而不會將中間結果保存到文件系統。ImageMagick:使用多個轉換結果編寫
龍解釋:
我有兩個圖像,這兩個需求的具體變換:
- avatar.jpg需要被轉化爲一個圓形的圖像 - >圓角頭像。 jpg
- background.jpg需要應用顏色層 - >color-back ground.jpg
然後我想dissolve
四捨五入avatar.png在有色background.jpg,讓我得到的東西看起來像這樣:
+-----------+ | O | +-----------+
我到目前爲止:
我知道如何順序地進行這些操作(也許不是最好的方式,但這不是這個問題的主題),還送了我一個工作的bash腳本:
#!/bin/bash
convert $1 -alpha set -background none -vignette 0x0 rounded-avatar.png
convert $2 -auto-orient -thumbnail 600x313^ -gravity center -extent 600x313 -region 100%x100% -fill "#256997" -colorize 72% colored-background.jpg
composite -dissolve 100 -gravity Center rounded-avatar.png colored-background.jpg -alpha Set $3
,我可以
$ ./myScript.sh avatar.jpg background.jpg output.jpg
調用它,我想要什麼:
我想避免的兩個臨時圖像的保存( rounded-avatar.jpg and colored-background.jpg)在文件系統上。
爲什麼?
- 這個過程必須建立在一個網絡平臺自動跑,我不希望有處理併發這些臨時文件與命名技巧。
- 當前的腳本使IM在內存中加載了兩次圖像,重新使用計算的圖像而不是將它們寫入磁盤然後將它們加載到新的進程中可能會更有效。
- 這些天磁盤I/O很少,我們節省一些。
我希望我只是缺少合適的關鍵字來查找文檔中的答案。
我知道這可能似乎過度優化,我沒有在這裏與C10k問題掙扎,但我只是想做正確的(並理解IM語法)。
能否請您提供您的輸入圖像以及在輸出你的腳本產生? –