Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
4-1118138381
A№t0№
2005-06-07 13:59
2005.08.07
Всплывающее сообщение из иконки на панели задач


3-1120043176
Тучудище
2005-06-29 15:06
2005.08.07
Когда лучше подтверждать транзакции


8-1112336983
Руслана
2005-04-01 10:29
2005.08.07
Источник записи


3-1117864446
GekaNaz
2005-06-04 09:54
2005.08.07
dbExpress - попытка коннекта


8-1112786904
murk2
2005-04-06 15:28
2005.08.07
Как сделать коррекцию гаммы в TBitmap?




   Наверх