![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Гамма-коррекция ЯРКОСТИ (а не КОНТРАСТА) нужна.. [D6, Win95/98, WinME, Win2k, WinXP]
IGray © (2002-11-01 03:26:00)Пытаюсь тут встроить гамма-коррекцию яркости в мою игрушку.
Попробовал менять яркость согласно следующему примерчику из одной
книжки
dwGamma := 0;
for iColor := 0 to 255 do begin
ddgr.red[iColor] := dwGamma;
ddgr.green[iColor] := dwGamma;
ddgr.blue[iColor] := dwGamma;
dwGamma := dwGamma + trackbarGamma.Position;
end;
hr := GammaControl.SetGammaRamp( 0, ddgr );
но в реальности уменьшалась КОНТРАСТНОСТЬ, а не ЯРКОСТЬ, т.е. число полутонов не увеличивалось - изображение просто равномерно _гасло_ А есть тут герой, знающий как ЯРКОСТЬ primary surface менять?
Заранее спасибо за ответ!
Separator (2002-11-01 08:52:00) [1]Посмотри здесь, может поможет:
http://algolist.manual.ru/graphics/filter/index.php
Dr_Mike (2002-11-01 03:44:00) [2]В принципе, я пользовался другим преобразованием, но разницы не скажу, надо будет проверить, что получается по твоему методу.
{Red, Green, Blue - от 0 до 1}
Red:= Round(63*Exp(Ln(Red)/Gamma));
Green:= Round(63*Exp(Ln(Green)/Gamma));
Blue := Round(63*Exp(Ln(Blue)/Gamma));
Кстати, и встречный вопрос - а почему количество полутонов должно возрасти ?