2014-03-14 26 views
0

我想用Fx函數做一些顏色轉換,但它不起作用。使用Fx函數在Magick.NET中進行顏色轉換

如果我使用Fx的函數

"rgb((1-u.r)*255,128,128)" 

內該表達式的結果是黑色圖像。實際的轉換比較複雜,但我不能讓這個簡單的轉換工作。

如果我使用

"rgb(0,128,128)" 

結果是如預期普通彩色圖像。

我的表情可能存在一些根本錯誤,但我看不到它。有誰能夠幫助我?

回答

1

在fx中使用rgb(...)僅用於指定唯一顏色而不用於計算。你將不得不這樣做:

using (MagickImage image = new MagickImage("Input.png")) 
{ 
    // Evaluate is faster if you just want to set a pixel to a value 
    image.Evaluate(Channels.Green | Channels.Blue, EvaluateOperator.Set, 128); 
    image.Fx("(1-u.r)*255", Channels.Red); 
    image.Write("Output.png"); 
}