Вниз
Скачать: 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.03 c
14-1121268154
Kerk
2005-07-13 19:22
2005.08.07
DIV element


3-1120208921
Kreyl
2005-07-01 13:08
2005.08.07
Чайницкий вопрос про добавление данных


1-1121639447
murtix
2005-07-18 02:30
2005.08.07
Массив в длл и обратно


1-1121867507
MegaVolt
2005-07-20 17:51
2005.08.07
Перекрыл Seek у TFileStream теперь не могу узнать Size :(


14-1121628347
Knight
2005-07-17 23:25
2005.08.07
Ремонт XP...




   Наверх