GDI+ Transparentes Image



  • Hallo,

    ich lasse ein Bild transparent über einem anderen anzeigen:

    String sZW = "Hintergrund.bmp";
    String sZW2 = "Transparent.bmp";
    
    Gdiplus::Graphics graphics(imgBehandlungFrontal->Canvas->Handle);
    
    Gdiplus::Image img1(sZW.w_str());
    Gdiplus::Image img2(sZW2.w_str());
    
    Gdiplus::ColorMatrix ClrMatrix =         {
    			1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
    			0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
    			0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
    			0.0f, 0.0f, 0.0f, 0.5f, 0.0f,
    			0.0f, 0.0f, 0.0f, 0.0f, 1.0f
    };
    
    Gdiplus::ImageAttributes ImgAttr;
    
    ImgAttr.SetColorMatrix(&ClrMatrix, Gdiplus::ColorMatrixFlagsDefault,
    						Gdiplus::ColorAdjustTypeBitmap);
    
    graphics.DrawImage(&img1, 0,0,218,517);
    
    graphics.DrawImage(
    							&img2,
    							Gdiplus::Rect(0, 0, 218, 517),  // dest rect
    							0, 0, 218, 517,           // source rect
    							Gdiplus::UnitPixel,
    							&ImgAttr);
    

    Aber wie kann ich die Transparenz verändern ? Ich will veränderbar einstellen wie stark transparent das darüber liegende Bild dargestellt wird.

    Danke für nen Tip !



  • Du mußt einfach den Alpha(A)-Wert der ColorMatrix verändern: ColorMatrix[3][3], d.h. in deinem Beispiel den Wert '0.5f', s.a. z.B. http://www.codeproject.com/KB/GDI-plus/AlphaBlending.aspx


Anmelden zum Antworten