2010-09-29 4 views
0

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

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

Спасибо!

ответ

1

Отличный article on changing brightness во время работы. По сути, это включает в себя преобразование цвета Brush в HSB, применение нового уровня яркости, а затем преобразование обратно в новый цвет кисти.

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

+0

Спасибо Randolpho, я ценю вашу помощь. Наверное, мне нужно сначала прочитать эту статью. – Anvar

2

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

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

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

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

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

Здесь я нашел код. http://www.dfanning.com/ip_tips/contrast.html

+0

Спасибо, Джо, я ценю это. – Anvar

Смежные вопросы