Michael Timoshin
Michael Timoshin

Reputation: 61

How do I get PNG with transparency into GDI32 (in c#) to use it with alphaBlend?

I'm trying to write a fast transparency class in c#. How do I get PNG with transparency into GDI32 to use it with alphaBlend?

I tried to put it directly via getHbitmap/selectObject, tried to paint it with setPixel on temporary DC, but all to no avail.

Upvotes: 2

Views: 580

Answers (1)

Michael Timoshin
Michael Timoshin

Reputation: 61

In the result I found (afer a sleepless night), that simplest of getting transparency into GDI32 is to set Color.Black in GetHbitmap(). Like this:

        using (Bitmap tBMP = new Bitmap(@"myBitmap.png"))
        {
            BMPObject = tBMP.GetHbitmap(Color.Black);
            sz = tBMP.Size;
        }

Any other color than black will give tinting in unexpected color of transparent areas. Now I'm quite happy with the result: fast alpha-blending in c#.

Upvotes: 3

Related Questions