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