![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
ну вот определение из википудии
* biBitCount*— указывает количество бит на пиксел. Может принимать следующие значения: .......... 8*— в палитре содержится до 256 цветов, каждый байт изображения хранит индекс в палитре для одного пиксела. вот о чем тут речь идет, если перевести на русский? |
|
#17
|
|||
|
|||
|
и еще
* biClrUsed*— указывает количество используемых цветовых индексов в палитре. Если значение равно нулю*— изображение использует максимально доступное количество индексов, в соответствии со значением biBitCount и методом сжатия, указанным в biCompression. а что тут понимается под термином ИНДЕКС? |
|
#18
|
||||
|
||||
|
Вроде по-русски написано.
Цитата:
biClrUsed практически всегда равно нулю, но может указывать количество используемых цветов из палитры. К примеру: палитра=256 цветов, biClrUsed=10, значит из всей палитры в данном битмапе используется только 10. Последний раз редактировалось angvelem, 20.08.2011 в 00:43. |
|
#19
|
|||
|
|||
|
то есть индекс - это число, показывающее в каком месте от начала (палитры) нужно искать необходимое значение из 4-х байт
если индекс = 00(число, записанное в байте пикселя), тогда необходимо прочесть от начала палитры 4-е байта, которые и будут соответствовать искомому? |
|
#20
|
||||
|
||||
|
То есть верно, камрад.
![]() |
|
#21
|
|||
|
|||
|
спасибо за комментарии
будем думать дальше |
|
#22
|
||||
|
||||
|
Цитата:
Цитата:
Код:
function GetPaletteColor(ABitmap: TBitmap; AIndex: Integer): Integer;
var
APaletteEntry: array [0..$ff] of PALETTEENTRY;
ANumberEntries: Integer;
begin
ANumberEntries:=GetPaletteEntries(ABitmap.Palette,
0, $100,APaletteEntry);
if ANumberEntries=0 then raise Exception.Create('GetPaletteEntries');
if ((AIndex<0) or (AIndex>=ANumberEntries)) then raise Exception.Create('NumberEntries');
Result:=RGB(APaletteEntry[AIndex].peRed, APaletteEntry[AIndex].peGreen,APaletteEntry[AIndex].peBlue);
end;Код:
var
c: Integer;
r, g, b: Integer;
begin
c:=GetPaletteColor(Image1.Picture.Bitmap, 236);
r:=GetRValue(c);
g:=GetGValue(c);
b:=GetBValue(c);
ShowMessage('r='+IntToStr(r)+' g='+IntToStr(g)+' b='+IntToStr(b));
end; |
|
#23
|
||||
|
||||
|
Цитата:
На SQL.RU отказались помогать? Они такие. ![]() |