Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
6-1206045254
anton
2008-03-20 23:34
2009.08.23
навигация в веббраузер


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


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


15-1245435055
AlexDan
2009-06-19 22:10
2009.08.23
Инетрнет-магазин


15-1245949320
Илья_
2009-06-25 21:02
2009.08.23
Сборка компьютера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский