Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

Как сделать коррекцию гаммы в TBitmap?   Найти похожие ветки 

 
murk2   (2005-04-06 15:28) [0]

Необходимо программно изменить количество R, G или B в загруженной картинке, как это делают все графические редакторы (Gamma Correction). Подскажите пожалуйста как это можно реализовать с помощью стандартных средств Delphi?


 
Alex Romanskiy ©   (2005-04-06 15:53) [1]

Можно переписать значение элементов массива Image1.canvas.pixels[x,y]. Получить R G B составляющие можно с помощью функций GetRValue, GetGValue, GetBValue. Изменяешь их, а потом записываешь назад. Можно использовать фнкцию RGB(r,g,b).


 
ancara ©   (2005-04-06 17:47) [2]


> Можно переписать значение элементов массива Image1.canvas.pixels[x,y].
>

можно, но будет медленно, особенно при записи обратно :)

если предполагается работа исключительно с bitmap то еще можно получить указатель на начало этого массива:
 BMPaddr: DWORD;
...
 BMPaddr:=DWORD(Image1.Picture.Bitmap.ScanLine[Image1.Picture.Bitmap.Height-1]);

а потом в небольшом цикле (можно на асме, ради скорости, хотя вряд ли удастся обогнать компилятор :)) ) бежать по этой области памяти и увеличивать (уменьшать) каждый байт.


 
Магнитоныч   (2005-04-06 18:01) [3]

http://delphibase.spb.ru/?action=viewfunc&topic=mediaimg&id=10213



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
4-1118215991
kkostik
2005-06-08 11:33
2005.08.07
Drag&Drop


6-1113420960
god
2005-04-13 23:36
2005.08.07
Vortex 2.9.5 IRC PRIVMSG ???


14-1121232587
qwe
2005-07-13 09:29
2005.08.07
Письма, письма, писма, ........?!!!???


11-1103250852
Lars Olson
2004-12-17 05:34
2005.08.07
Russian To english of Kol.mastrak lessons


14-1121622557
}|{yk
2005-07-17 21:49
2005.08.07
Поздравляю Подгорецкого!