2

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

我尝试直接通过getHbitmap/selectObject 放置,尝试在临时DC 上使用setPixel 进行绘制,但均无济于事。

4

1 回答 1

2

在我发现的结果中(经过一个不眠之夜),让 GDI32 透明的最简单方法是在 GetHbitmap() 中设置 Color.Black。像这样:

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

黑色以外的任何其他颜色都会给透明区域带来意想不到的颜色。现在我对结果很满意:c# 中的快速 alpha 混合。

于 2010-02-21T03:55:20.780 回答