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

Вниз

Как правильно работать с палитрой   Найти похожие ветки 

 
Priest   (2009-06-23 14:59) [0]

Есть такой код

procedure InitBitmapPallete(Bmp:TBitmap);
var
j: Byte;
LogPalette: TMaxLogPalette;
PLogPal: PLogPalette;
begin
 with LogPalette do
 begin
   palVersion := $0300;
   palNumEntries := 256;
   for j := 0 to 255 do
     with palPalEntry[j] do
       begin
        peRed := j; //$FF;
        peGreen := j;
        peBlue := j; //0;
        peFlags := 0;
       end;
 end; //with LogPalette do
 PLogPal := @LogPalette;
 Bmp.PixelFormat := pf8bit;
 Bmp.Palette := CreatePalette(PLogPal^);
end;


В конце я  пишу CreatePalette. Не будет ли утечек памяти? Должен ли я в конце работы освободить палитру?


 
Sapersky   (2009-06-23 16:45) [1]

Я бы порекомендовал использовать FastLIB:
http://sapersky.narod.ru/files/FastLIBv389i.rar
Работа с палитрой там на порядок удобнее.


 
Priest   (2009-06-23 17:45) [2]

К сожалению код старый, поэтому не хочу сильно модифицировать


 
Sapersky   (2009-06-24 14:46) [3]

Cудя по исходникам TBitmap - он удаляет палитру сам:

procedure TBitmapImage.FreeHandle;
begin
<..>
 InternalDeletePalette(FPalette);
 FPalette := 0;
end;

procedure TBitmap.SetPalette(Value: HPALETTE);
var
 AHandle: HBITMAP;
 DIB: TDIBSection;
begin
// при назначении новой палитры удаляет старую
 if FImage.FPalette <> Value then
 begin
   with FImage do
     if (Value = 0) and (FRefCount = 1) then
     begin
       InternalDeletePalette(FPalette);
       FPalette := 0;
     end
<..>



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
15-1245816012
Дмитрий С
2009-06-24 08:00
2009.08.23
Поиск точки


2-1245840591
Sly_Laban
2009-06-24 14:49
2009.08.23
*.doc-файл из RichEdit a


2-1245608753
AlexLLL
2009-06-21 22:25
2009.08.23
Сортировка TList


2-1245775600
marantz85
2009-06-23 20:46
2009.08.23
Как записать в memorystream динамический массив Double -ов?


1-1211444212
MishaLukash
2008-05-22 12:16
2009.08.23
DBGrid цифровая клавиарура ввод десят.запятой