Gdi+: Laden von Bitmaps mit Alpha Kanal



  • Ich habe eine Bitmap Datei, in der ich Antialiasing mittels Transparenz nutze. Die Datei habe ich unter Gimp im RGB Modus als A8R8B8G8 abgespeichert.

    Diese Datei möchte ich nun laden, bekomme aber immer wieder Probleme diese als Resource zu laden.

    // ...
    // Bitte nicht motzen wg. Speicherlöcher, darauf achte ich später...
    Gdiplus::GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    
    Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
    // ...
    Gdiplus::Bitmap* Image;
    Gdiplus::Status q;
    
    Image = Gdiplus::Bitmap::FromFile(L".\\Logo.bmp");  // geht immer 
    
    q = Image->GetLastStatus();  // liefert OK
    
    Image = Gdiplus::Bitmap::FromResource(ghInstance, (wchar_t*) MAKEINTRESOURCE(IDB_LOGO)); // geht nicht
    
    q = Image->GetLastStatus();  // liefert InvalidParameter
    
    // ...
    Gdiplus::GdiplusShutdown(gdiplusToken);
    
    // ...
    

    Interresanterweise funktioniert die FromResource() Funktion, wenn ich die BMP Datei indiziert ohne Transparenz abspeichere. 😞

    Ein Test ergab dass ich die Datei dann auch mittels LoadImage laden kann. Also an fehlerhaften ID's sollte es nicht liegen. Die Transparenz von LoadImage kann ich übrigens nicht nutzen da ich mehrere Transparenzstufen habe.



  • Schau dir dazu mal folgenden Link an: Loading JPG & PNG resources using GDI+


Anmelden zum Antworten