Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1114019313
Jetus
2005-04-20 21:48
2005.08.07
Блокировка файла от удаления по FTP


3-1120362614
serguncho
2005-07-03 07:50
2005.08.07
Переименование полей Access


14-1121419058
leonidus
2005-07-15 13:17
2005.08.07
Знатокам InnoSetup


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


14-1121514195
Экспериментатор
2005-07-16 15:43
2005.08.07
Как написать скриптик на VB, который бы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский