Как установить яркость точки?
Мне нужно обработать изображение по определенному алгоритму, в котором предусматривается изменение яркости точки (изображение может быть как цветным, так и черно-белым). К сожалению, не нашел никаких функций в WinAPI, которые позволяли бы устанавливать яркость точки. Функцию получения яркости точки нашел, например, в C# (GetBrightness()), а вот функцию установки яркости не нашел нигде. Подскажите, пожалуйста, как можно установить яркость точки?
Ты имеешь ввиду пикселя?
Конечно пикселя.
http://ru.wikipedia.org/wiki/HSV/Temp
там V - это как раз яркость.
Представляй цвет форматом HSV.
там V - это как раз яркость.
Если использовать RGB, то можно попробовать делить (или умножать) каждую цветовую составляющую на число, сопоставляемое яркости. Только надо следить за переполнениями и т. д. Не лучший конечно метод, но в простейшем случае работать будет.
Цитата: black_priest
Если использовать RGB, то можно попробовать делить (или умножать) каждую цветовую составляющую на число, сопоставляемое яркости. Только надо следить за переполнениями и т. д. Не лучший конечно метод, но в простейшем случае работать будет.
Для изменения только яркости пиксела этого вполне достаточно.
Цитата: tumanovalex
К сожалению, не нашел никаких функций в WinAPI, которые позволяли бы устанавливать яркость точки. ... Подскажите, пожалуйста, как можно установить яркость точки?
Посмотри "Shell Color Palette Handling Functions"
В частности - ColorHLSToRGB и ColorRGBToHLS