Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > gamma correction, vibrance


Автор: SilverMax 21.10.2008, 20:18
Здравствуйте, помогите пожалуйста с такой проблемой:
- необходимо произвести гамма-коррекцию Bitmap^, зависящую от Alpha-канала пикселя для того, чтобы визуально отличить слишком тёмные пиксели от слишком ярких (выровнять гамму битмапа), учитывая, что фон Битмапа - чёрный;
- как реализуется эффект vibrance?

Код

float gamma;
gamma = Math::Log(newcolor.A) / newcolor.A;
int r, g, b;
r = int(newcolor.R * Math::Pow(newcolor.GetBrightness(), gamma));
g = int(newcolor.G * Math::Pow(newcolor.GetBrightness(), gamma));
b = int(newcolor.B * Math::Pow(newcolor.GetBrightness(), gamma));
newcolor = Color::FromArgb(newcolor.A, r, g, b);


как использовать Bitmap::ApplyEffect()? При объявлении Bitmap^ bmp у bmp этот метод не обнаруживается...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)