如何将PNG透明化为GDI32(在c#中)以与alphaBlend一起使用?

我正在尝试在c#中编写一个快速透明度类。 如何将PNG透明化为GDI32以将其与alphaBlend一起使用?

我试图通过getHbitmap / selectObject直接把它,试图用临时DC上的setPixel绘制它,但都无济于事。

在我发现的结果中(从不眠之夜开始),最简单的获得GDI32透明度的是在GetHbitmap()中设置Color.Black。 像这样:

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

除黑色之外的任何其他颜色都会在透明区域的意外颜色中进行着色。 现在我对结果非常满意:在c#中快速进行alpha混合。