![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить цвет пикселя из палитры BMP 8bit
Pcrepair © (2011-08-18 21:45:00)Добрый день!
Нужна помощь в разработке кода процедуры
как известно, в BMP 8bit файле на пиксель приходиться байт, в котором хранится число, соответсвующее цвету в палитре. в то же время в палитре каждому цвету соответсвует 4-е байта (BGR)
Вопрос:
1. каким образом по числу, хранящимуся в байте пикселя, происходит сопоставление с блоком из 4-х байт в палитре, соотвествующих цвету. при отображении пикселя на TImage
2. каким может быть код процедуры, обработка нажатия на кнопку
- ввод числа в TEdit (аналог числа в байте пикселя)
нажимаем на кнопку
- поиск в палитре
- вывод значений 4-х байт в TLabel (к примеру)
- или вывод ошибки (такого цвета нет в палитре)
Самостоятельно что то с трудом представляю как это можно сделать
Спасибо за внимание
Омлет (2011-08-19 21:21:00) [1]Это скачивается по ссылке: http://www.delphimaster.ru/articles/pixels/qpix.zip
Pcrepair (2011-08-19 21:01:00) [2]Класс TQuickPixels - ? это входит в РАД2010 или надо искать?
Омлет (2011-08-19 19:53:00) [3]http://www.delphimaster.ru/articles/pixels/index.html
Pcrepair (2011-08-19 19:36:00) [4]Спасибо за источник, но там по теме не нашел ничего
мне нужно совсем другое, еще раз:
допустим есть байт пикселя с индексом? 236 или 0хEC в массиве пикселей
ему соответсвуют 4-байта BGRA в палитре
мне нужно получить значения этих байт в числовом формате
ну типа,
пиксел = 0xEC, соответсвующие ему значения цветов в палитре
B = 0x44
G = 0x55
R = 0x66
каким образом определить какому индексу соответсвуют цвета?
палитра занимает с 54 по 1078 байт в файле, может нужно разбить это пространство на блоки по 4-е байта, назначить каждому блоку свой номер-индекс в 16-й системе и это и будет соответсвие между индексом в байте пикселя и индексом в палитре?
может не совсем правильно обьясняюю ??
Игорь Шевченко (2011-08-18 22:16:00) [5]
> в котором хранится число, соответсвующее цвету в палитре
индексу в палитре.
В свое время (лет 10 назад) брал пример для работы с палитрами отсюда
http://www.efg2.com/Lab/
а вообще с ними, с палитрами, все просто