Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BMP-файлы и RGB


-=Tiger=- ©   (2006-11-01 13:04:00) 

Здравствуйте! Уже просмотрел форму в поисках подобного вопроса, но того, что нужно, не нашёл.. Есть задание: на входе проги bmp-файл, на выходе - три bmp с изменёнными интенсивностями каналов R, G, B. Т.е. первый измененный bmp - с сильной интенсивностью канала R и слабой инетенсивностью каналов G, B; второй - с сильной интенсивностью G и т.д. Подскажите, пожалуйста, как это сделать? =) В графике я вообще не разбираюсь. Понимаю, конечно, что необходимо знать структуру bmp-файла, считать её... и всё =) дальше не знаю.. заранее благодарю за все ответы...


Горгер   (2006-11-07 00:42:00) [1]

Есть формат представления цвета HSV, в котором вместо красного, зеленого, и синего каналов есть тон (H), насыщенность (S), и светлота (V).
Алгоритм преобразования RGB->HSV находится по ссылке:
http://algolist.manual.ru/graphics/rgb2hsv.php
В фотошопе поиграйся с H,S,V и определи что и как надо изменять, для того, чтобы свой сабж решить.
Берешь свой RGB на входе, конвертируешь его пиксели в HSV, правишь как надо, потом опять в RGB и готово.


-=Tiger=-   (2006-11-01 16:16:00) [2]

Всё, пасиба MBo и всем остальным. Прочитал статью "Поставить точку" - всё стало пняно =)


-=Tiger=-   (2006-11-01 16:13:00) [3]

вобщем, дело с мертвой точки сдвинулось ) Считал заголовок и инфу bmp-файла... но вот не понимаю, как изменить интенсивность каналов RGB. Я так понял, что каждый пиксел файла имеет свои значения R,G,B.. я понял правильно? =) Если да, то наверное в цикле надо пробежаться по всем пикселам и изменить  интенсивность их RGB. Вопрос: каким образом это сделать? ) в смысле, как узнать RGB каждого пиксела?


MBo   (2006-11-01 15:58:00) [4]

Для доступа к данным битмапа можно использовать TBitmap.Scanline или метод из статьи "Поставить точку"


Vovan#1   (2006-11-01 15:58:00) [5]

> Понимаю, конечно, что необходимо знать структуру bmp-файла, считать её...

Если ты программируешь под Delphi, то заморачиваться с чтением файла не надо - это за тебя сделают стандартные средства, в неё входящие. Имеется ввиду класс TBitmap.


Jeer   (2006-11-01 15:46:00) [6]

Сам понимаешь - либо учишься, либо платишь.
Возможно также интуитивное постижение материала путем погружения сознания в Тонкий Мир.


Наверх

Титульная страница Поиск, карта сайта Написать письмо