开发者

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

开发者 https://www.devze.com 2022-12-20 12:00 出处:网络
I\'m trying t开发者_StackOverflow社区o write a fast transparency class in c#. How do I get PNG with transparency into GDI32 to use it with alphaBlend?

I'm trying t开发者_StackOverflow社区o 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.


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#.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号