Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Палитра TBitmap   Найти похожие ветки 

 
Andrew S   (2003-06-26 18:39) [0]

Доброго времени суток!
Если не трудно помогите разобраться с палитрой TBitmap. Как создать, а потом изменить? Мне нужно 256 цветов в палитре.
Пробовал пример из FAQ, но толкового ничего не вышло.
Желательно разжевать поподробнее, я в Delphi пока чайник.


 
MBo ©   (2003-06-26 19:07) [1]

пример в хелпе по TBitmap.Palette

Или SetDibColorTable
или CreatePalette+SetPalette


 
Dimaxx ©   (2003-06-28 19:29) [2]

Вот как я это делал:

Создание палитры

var Pal: PLogPalette;
Cadr: PBitmap;
NumColors: integer;
...
NumColors:=256;
// Запросим блок памяти под палитру
GetMem(Pal,sizeof(PLogPalette)+NumColors*sizeof(TPaletteEntry));
for I:=0 to pred(NumColors) do
begin
// Запишем цвета в таблицу
Pal^.palPalEntry[I].peRed:=...;
Pal^.palPalEntry[I].peGreen:=...;
Pal^.palPalEntry[I].peBlue:=...;
Pal^.palPalEntry[I].peFlags:=0;
( Pal^)
Вот как я это делал:

Создание палитры

var Pal: PLogPalette;
Cadr: PBitmap;
NumColors: integer;
...
NumColors:=256;
// Запросим блок памяти под палитру
GetMem(Pal,sizeof(PLogPalette)+NumColors*sizeof(TPaletteEntry));
for I:=0 to pred(NumColors) do
begin
// Запишем цвета в таблицу
Pal^.palPalEntry[I].peRed:=...;
Pal^.palPalEntry[I].peGreen:=...;
Pal^.palPalEntry[I].peBlue:=...;
Pal^.palPalEntry[I].peFlags:=0;
end;
// Создадим палитру для кадра
Pal^.palVersion:=$300;
// Нужное число цветов
Pal^.palNumEntries:=NumColors;
Cadr.Palette:=CreatePalette(Pal^);
...


После удаления битмапа делаем FreeMem(Pal). Удачи!


 
Mihey ©   (2003-06-28 20:38) [3]

В справке по Delphi можно набрать: "Palette,TBitmap". Там хороший example.



Страницы: 1 вся ветка

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
14-98826
Aristarh
2003-10-11 00:29
2003.10.30
Как зайти в bios ноутбука IBM?


14-98882
sniknik
2003-10-10 15:17
2003.10.30
Очень прикольное обьявление (в туалете)


4-98934
Alexander
2003-08-22 17:37
2003.10.30
Как можно из COM сервера - расширениз контекстного меню


3-98431
Praco
2003-10-08 15:52
2003.10.30
ADO + DBF = ужасно медленно


14-98879
никто
2003-10-09 13:51
2003.10.30
mysql