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#.
精彩评论