2015-04-25 56 views
0

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

回答

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