Silverlight 4.0 - управление контрастом и яркостью - PullRequest
0 голосов
/ 29 сентября 2010

Я создаю графический редактор для Silverlight 4.0 и мне нужно немного понимания или, возможно, фрагмент кода или библиотеки для реализации управления контрастом / яркостью.

Буду признателен, если кто-нибудь расскажет, как этого достичь.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Контрастность - это «широкий» диапазон значений яркости пикселей из общего возможного диапазона значений.

Яркость - это «смещение» этой полосы от минимально возможного уровня.

Чтобы увеличить контраст, вычтите (наименьшее текущее значение - наименьшее возможное значение) из всех значений пикселей, чтобы установить полосу на 0. Затем умножьте все значения на (максимально возможное значение / максимальное значение) для масштабированияряд "к диапазону всех возможных значений.

Чтобы отрегулировать яркость, добавьте или вычтите абсолютное значение из каждого пикселя.

Возможно, вы захотите сделать это с каналом Luminance или Value в цветовом пространстве HSL или HSV.

Я нашел некоторый код здесь.http://www.dfanning.com/ip_tips/contrast.html

1 голос
/ 29 сентября 2010

Вот отличная статья об изменении яркости во время выполнения.По сути, это включает в себя преобразование цвета кисти в HSB, применение нового уровня «яркости», а затем преобразование обратно в новый цвет кисти.

Что касается контраста ... Полагаю, вы могли бы сделать тот же основной трюкно на этот раз проверьте значения RGB каждого цвета;если один цвет доминирует над другими цветами, увеличьте его значение цвета и уменьшите другие значения цвета на некоторый фактор.Ваши красные становятся более красными, ваши зеленые становятся более зелеными, ваш синий становится голубым.Фактор должен быть настроен, но это может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...