Magick.NET中使用Fx函数进行颜色转换

时间:2014-03-14 08:24:06

标签: c# magick.net

我正在尝试使用Fx函数进行一些颜色转换,但它不起作用。

如果我在Fx函数

中使用此表达式
"rgb((1-u.r)*255,128,128)"

结果是黑色图像。实际的转换更复杂,但我甚至无法使这个简单的转换工作。

如果我使用

"rgb(0,128,128)"

结果是预期的纯色图像。

我的表情可能存在一些根本性的错误,但我无法看到它。有人能帮助我吗?

1 个答案:

答案 0 :(得分: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");
}