Главная страница
    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.039 c
1-1121918916
Demidoff
2005-07-21 08:08
2005.08.07
Как соединить print dialog c richedit.print?


3-1120132669
Леонид
2005-06-30 15:57
2005.08.07
Как правильно сделать перемещение указателя в гриде если...


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


8-1112617676
Kevin Brown
2005-04-04 16:27
2005.08.07
Конвертация из Gif в Bmp.


1-1121770998
TButton
2005-07-19 15:03
2005.08.07
запись в файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский