Thema: Delphi Bitmap / Palette

Einzelnen Beitrag anzeigen

EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#1

Bitmap / Palette

  Alt 20. Mai 2007, 21:06
Hallo,

wie kann ich verschiedene Paletten für Bitmaps speichern und dann einzelnen Bitmaps eine bestimmte Palette zuweisen??

Ich dachte es in etwa so:
Delphi-Quellcode:
   BitmapP : Array[0..10 ] of Tbitmap;
   PaletteArray : Array[0..10] of HPALETTE;
//...
//...

For X := 0 to 10 do
  begin
     BitmapP[X] := Tbitmap.create;
     BitmapP[X].PixelFormat := pf4bit;
     BitmapP[X].SetSize(1,1);
     PaletteArray[X] := BitmapP[X].Palette;
     GetPaletteEntries(PaletteArray[X], 0, 15, farbe);
     //Palette manipulieren
     //(die Zuweisung der Farben nur hier nur als Beispiel)
     for I := 0 to 15 do
       begin
         farbe[I].peRed := (20 * X) + I;
         farbe[I].peGreen := (20 * X) + I;
         farbe[I].peBlue := (20 * X) + I;
       end;
     SetPaletteEntries(PaletteArray[X], 0, 15, farbe);
  end;

end;

//...
//...

   Bitmap := Tbitmap.create;
   Bitmap.PixelFormat := pf4bit;
   Bitmap.Palette := PaletteArray[0] // oder 1,2,...

//...
/ :roll: /...
// und später im Programm einfach nur noch
  Bitmap.ReleasePalette;
  Bitmap.Palette := PaletteArray[5]
Leider funktioniert es so nicht.

LOGPALETTE habe ich auch schon gefunden, aber da kann ich nur einen Farbwert zuweisen.(warum auch immer?!?!? )
Kann ich aus einer HPalette eine Logpalette erstellen??? (z.B. createLogPalette(HPalette);


LOGMaxPALETTE(oder so ähnlich) geht glaube ich nur mit 256 Farben

Besten Dank für jede Hilfe und jeden Hinweis

Gruß
EarlyBird
  Mit Zitat antworten Zitat