Я пытаюсь разработать простой метод расширения настройки изображения, который имеет такую подпись:
static Alter(this System.Drawing.Image, Color original, Color result);
Я хочу заполнить алгоритм цветом текущего изображения, а затем преобразовать его в result
цвет.Так что если я передам в img.Alter (фиолетовый, желтый), все изображение будет смещено в сторону желтого.У меня это работает по большей части, и я могу делать статические преобразования, такие как шкала яркости и инверсия, но динамическое изменение ставит меня в тупик.
Моя главная проблема заключается в том, как определить «разницу» в цвете и затем применитьэто в формате RGB ColorMatrix.У меня есть конвертер HueSaturationBrightness, так что я мог бы потенциально кое-что сделать со значениями GetHue (), GetSaturation () и GetBrightness (), переданными в цветах.
Я пытаюсь использовать 40, 41 и 42индексы ColorMatrix для добавления / вычитания компонентов к красным, зеленым и синим компонентам исходного изображения / цвета.Кажется, я не могу понять это правильно.
Каков наилучший способ определения процентной разницы RGB для двух изображений с использованием HSB.