2

C# で高速な透過性クラスを作成しようとしています。GDI32 に透明な PNG を取得して 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# での高速なアルファ ブレンディングという結果に非常に満足しています。

于 2010-02-21T03:55:20.780 に答える