Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 20.08.2011, 00:35
Pcrepair
 
Сообщения: n/a
По умолчанию

ну вот определение из википудии

* biBitCount*— указывает количество бит на пиксел. Может принимать следующие значения:
..........
8*— в палитре содержится до 256 цветов, каждый байт изображения хранит индекс в палитре для одного пиксела.

вот о чем тут речь идет, если перевести на русский?
Ответить с цитированием
  #17  
Старый 20.08.2011, 00:39
Pcrepair
 
Сообщения: n/a
По умолчанию

и еще
* biClrUsed*— указывает количество используемых цветовых индексов в палитре. Если значение равно нулю*— изображение использует максимально доступное количество индексов, в соответствии со значением biBitCount и методом сжатия, указанным в biCompression.

а что тут понимается под термином ИНДЕКС?
Ответить с цитированием
  #18  
Старый 20.08.2011, 00:39
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вроде по-русски написано.
Цитата:
индекс в палитре
то есть смещение от начала палитры.
biClrUsed практически всегда равно нулю, но может указывать количество используемых цветов из палитры. К примеру: палитра=256 цветов, biClrUsed=10, значит из всей палитры в данном битмапе используется только 10.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 20.08.2011 в 00:43.
Ответить с цитированием
  #19  
Старый 20.08.2011, 00:49
Pcrepair
 
Сообщения: n/a
По умолчанию

то есть индекс - это число, показывающее в каком месте от начала (палитры) нужно искать необходимое значение из 4-х байт

если индекс = 00(число, записанное в байте пикселя), тогда необходимо прочесть от начала палитры 4-е байта, которые и будут соответствовать искомому?
Ответить с цитированием
  #20  
Старый 20.08.2011, 00:54
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

То есть верно, камрад.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #21  
Старый 20.08.2011, 00:57
Pcrepair
 
Сообщения: n/a
По умолчанию

спасибо за комментарии
будем думать дальше
Ответить с цитированием
  #22  
Старый 21.08.2011, 08:44
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Pcrepair
мне нужно совсем другое
Цитата:
Сообщение от Pcrepair
каким образом определить какому индексу соответсвуют цвета?
думал догадаешься:
Код:
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  
Старый 22.08.2011, 12:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Pcrepair
спасибо за комментарии
будем думать дальше
offtop
На SQL.RU отказались помогать? Они такие.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025