Erstellen einer transparenten Bitmap mit GDI?

8

Ich möchte in meiner Anwendung ein Layersystem implementieren und dachte daran, eine Menge transparenter Bitmaps zu erstellen, Inhalte hinzuzufügen und sie dann übereinander zu blättern. Wie kann das gemacht werden, ohne jedes Pixel auf (0, 0,0,0). Ich benutze Pure win32, nicht MFC, danke.

    
jmasterx 28.04.2010, 03:02
quelle

2 Antworten

10

Was meinst du mit transparent?

Wenn Sie nach partieller (vollständiger) Transparenz suchen, AlphaBlend ist die zu verwendende GDI-API. Das Laden von Bitmaps mit Alpha ist knifflig - Das einzige Format, das die Basis Windows API zum Laden von Bitmaps mit Alpha unterstützt, ist eine 32bpp .BMP Datei mit einem Alpha Kanal in den oberen 8 Bits jedes Bytes - und die unteren Bytes sollten vormultipliziert werden.

Es ist möglich, GDI + zu verwenden, um eine Vielzahl von Bildformaten mit Alpha zu laden - PNG ist wahrscheinlich das Beste, und blit auf eine 32bpp DIBSection, so dass Sie AlphaBlend und plain-alte GDI-Funktionen verwenden können.

Wenn Sie eine einfache Transparenzmaske anstelle eines vollständigen Alphakanals wünschen, können Sie verwenden TransparentBlt zusammen mit einem Farbschlüssel zum Ausblenden von Bereichen einer Bitmap beim Blitzen.

    
Chris Becke 28.04.2010, 05:28
quelle
-1

GDI unterstützt keine Transparenz in Bitmaps und im Allgemeinen. Erwägen Sie die Verwendung von GDI + .

    
Kirill V. Lyadvinsky 28.04.2010 04:20
quelle

Tags und Links