8Bit Bitmap in 24Bit und zurück nach 8Bit wandeln -> kaputt



  • Ich habe ein Graustufen-Bild (8 Bit). Eine bestimmte Funktion erwartet ein 24Bit-Bild, sonst funktioniert sie nicht. Also setze ich das PixelFormat auf 24bit und anschließend wieder auf 8bit (da ich in anderen Funktionen mit dem Graubild arbeite und dort 8bit voraussetze). Doch das Bild sieht dann aus, als wenn die Farbanzahl falsch reduziert wurde, ich vermute einen Fehler in der Palette der Grauwerte. Zum Testen habe ich ein neues Projekt in BCC5 erstellt mit nur einem TImage auf der Form, bereits ein 8bit Graubild geladen. Und auf Klick führe ich dies aus:

    bild->Picture->Bitmap->PixelFormat=pf8bit;
      bild->Repaint();
    

    ==> kein Problem, kein Unterschied, alles in Ordnung

    bild->Picture->Bitmap->PixelFormat=pf24bit;
      bild->Picture->Bitmap->PixelFormat=pf8bit;
      bild->Repaint();
    

    ==> Bild ist kaputt

    HPALETTE p = bild->Picture->Bitmap->Palette;
      bild->Picture->Bitmap->PixelFormat=pf24bit;
      bild->Picture->Bitmap->PixelFormat=pf8bit;
      bild->Picture->Bitmap->Palette = p;
      bild->Repaint();
    

    ==> Bild ist immer noch kaputt, obwohl ich die Palette vorher gespeichert und anschließend wieder gesetzt habe.

    Was muss ich machen, damit das Ergebnis ok ist?

    Danke,
    Micha



  • mit pf8bit machst Du nicht unbedingt ein Grau- Bild!!!

    Das Format ist ein 8- Bit - Colorformat! 8 Bit fuer alle 3 Farben zusammen!

    Bei Graustufenbild sind alle 3 Farbanteile jeweils gleich.

    PS: Du kannst mir mal so ein Bild mailen. (Original, 24bit und zurueck 8 bit. Dann schau ich mal rein.


Anmelden zum Antworten