如何使用Magick.Net更改图像中每个像素的颜色

时间:2015-04-25 23:00:02

标签: c# imagemagick magicknet

我是Magick.Net的新手。我试图改变图像中每个像素的颜色,但新图像没有变化。这是我的代码。谁能告诉我发生了什么事?非常感谢。

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using ImageMagick;
  namespace MagickTutor
  {
   class Program
     {
       static void Main(string[] args)
        {
          MagickImage image = new MagickImage();
          image.Read("C:\\.....\\test1.png");
          foreach (Pixel p in image.GetWritablePixels()) {
              p.SetChannel(0, 65535);
          }
          image.Write("C:\\.....\\test2.png");
        }
      }
  }

1 个答案:

答案 0 :(得分:0)

您应该调用image.GetWritablePixels()返回的WritablePixelCollection类的Write方法,以确保将像素写入图像。

你也可以用不同的方式做你正在做的事情:

using (MagickImage image = new MagickImage())
{
  image.Read(@"C:\.....\test1.png");
  image.Evaluate(Channels.Red, EvaluateOperator.Set, Quantum.Max);
  image.Write(@"C:\.....\test2.png");
}