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

本小妞迷上赌 提交于 2019-12-22 17:48:09

问题


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.


回答1:


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



来源:https://stackoverflow.com/questions/2294411/how-do-i-get-png-with-transparency-into-gdi32-in-c-to-use-it-with-alphablend

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!