Как изменить цвет каждого пикселя в изображении с помощью 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");
        }
      }
  }

1 ответ

Решение

Вы должны вызвать метод Write класса WritablePixelCollection, который возвращается функцией image.GetWritablePixels(), чтобы убедиться, что пиксели записаны в изображение.

Вы также можете сделать то, что вы делаете по-другому:

using (MagickImage image = new MagickImage())
{
  image.Read(@"C:\.....\test1.png");
  image.Evaluate(Channels.Red, EvaluateOperator.Set, Quantum.Max);
  image.Write(@"C:\.....\test2.png");
}
Другие вопросы по тегам