色彩转换与Fx功能在Magick.NET



我试图用Fx函数做一些颜色变换,但它不起作用。

如果我在Fx函数

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

的结果是黑色的图像。实际的变换要复杂得多,我甚至不能用这个简单的变换。

如果我使用

"rgb(0,128,128)"

结果是预期的纯色图像。

在我的表达中可能有一些根本性的错误,但是我看不出来。有人能帮帮我吗?

在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");
}

相关内容

  • 没有找到相关文章

最新更新