Я использую Magick.NET для цветокоррекции фотографий. Я настраиваю красный, зеленый и синий каналы, добавляя или вычитая процент для каждого с помощью метода Evaluate. Значение здесь представляет собой +/- количество изменений, применяемых к указанному каналу.
image.Evaluate(channel, EvaluateOperator.Add, new Percentage(value));
Добавление цвета в канал — это нормально, но удаление цвета из канала изменит цветовой баланс белого в изображении (удалив красный, изображение станет зелено-синим). Мне нужно иметь возможность применить настройку к каждому каналу без изменения белого.
Я пробовал применять Level после Evaluate, а также ContrastStretch, думая, что могу указать черную/белую точку ниже/выше которой настройка игнорируется.
ColorMatrix выглядит многообещающе, но дает действительно странные результаты, а Modulate делает поворот цветов, что неправильно.
Спасибо