2012-08-01 51 views
1

我想擺脫一堆使用ImageMagick的圖像背景。 ImageMagick網站記錄了這樣做的variety of techniques。他們還方便地編寫了一個shell腳本,bg_removal.sh,它包含了他們的這些方法的首選組合。ImageMagick中這個'fx'表達有什麼問題?

雖然我在腳本中出現錯誤。當你調用腳本時,你會給出幾個模糊參數,如果你知道的話,加上特定的背景顏色。傳遞一個明確的背景顏色,像RGB(37,188,111),導致最後的命令的這個片段:

(+clone -sparse-color voronoi 0,0,RGB(37,188,111)) 

..和它工作正常。如果您沒有傳遞的bgcolor,雖然,表達式如下:

(+clone -sparse-color voronoi 0,0,%[fx:p{0,0}]) 

,也未能與有關具有-sparse-color錯號碼的參數信息。我可以將其更改爲不同的功能,它的工作原理:

(+clone -sparse-color voronoi 0,0,%[pixel:p{0,0}]) 

我不知道有足夠的瞭解ImageMagick的知道什麼是fx功能在做什麼,是否pixel是一個可以接受的替代品。我認爲它正在尋找座標爲0,0的顏色來猜測背景顏色,但不完全確定。語法0,0,%[fx:p{0,0}]是否正確?

+0

您安裝了哪個版本的ImageMagick? – 2012-08-02 17:02:52

+0

版本:ImageMagick 6.6.8-1 2012-05-20 Q16 - 我會在下面查看您的建議,謝謝 – SkippyFlipjack 2012-08-02 20:15:51

回答

2

-fx是一種運算符,可讓您使用數學或IM特定表達式應用於像素:-fx 'expression'

只是在ImageMagick的版本6.2.10,後來它被引入,你可以使用一個轉義序列 LIKE「%[FX:...]」內image properties escaped strings,對於特殊場合他們被包圍的時候在大括號。因此,這兩種方法應該v6.2.10後工作:

%[fx:expression] 
%[pixel:expression] 

,以你的問題:是的,「像素IS可接受的替代」爲FX。

和表達式p{0,0}手段:「在當前圖像中返回左上像素的顏色值」。

所以檢查的ImageMagick的版本:

convert -version 

至於爲什麼你完整的表達式失敗爲-sparse-color因爲'錯誤的參數數目'

  1. 檢查voronoi-sparse-color支持的方法之一:

    convert -list sparse-color

    (我以爲是 - 否則你可能會看到不同的錯誤信息。)

  2. -sparse-color一般語法記錄爲:

    -sparse-color method 'x,y color ...'

    這意味着你也許應該使用更多的報價,使稀疏,顏色識別正確的參數個數。如何

    (+clone -sparse-color voronoi '0,0 %[fx:p{0,0}]')

相關問題