Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
3-98437
stud
2003-10-10 15:46
2003.10.30
гляньте, что тут не так?


4-98939
w666w
2003-08-27 19:15
2003.10.30
Как установить 2 разных иконки для приложения (32х32) и (16х16)


14-98812
Думкин
2003-10-12 06:40
2003.10.30
С днем рождения! 12 октября.


4-98917
ShadoWFM
2003-08-24 21:29
2003.10.30
Как создать ярлык на форме?


1-98633
Cranium
2003-10-16 21:07
2003.10.30
Как определить, что сколько экземпляров заданного уже создано?




   Наверх