Форум: "Media";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизКак сделать коррекцию гаммы в 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 вся ветка
Форум: "Media";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.038 c