Главная страница
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.013 c
15-1246001034
Василий Жогарев
2009-06-26 11:23
2009.08.23
PostgreSQL 8.3 and DataType serial


15-1245417712
ганя
2009-06-19 17:21
2009.08.23
Какие инструменты UML вы используете?


8-1196707594
_alex_
2007-12-03 21:46
2009.08.23
Декомпрессоры


15-1245475073
TUser
2009-06-20 09:17
2009.08.23
Визбору - 75 !!!


15-1245441971
Andy BitOff
2009-06-20 00:06
2009.08.23
119 никому ненужных фактов, хотя....