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