Форум: "Media";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизПалитра 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 вся ветка
Форум: "Media";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c