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

How to Change the color of each pixel in a image by using Magick.Net

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

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

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

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