2010-02-19 2 views
2

Я пытаюсь написать быстрый класс прозрачности в C#. Как получить PNG с прозрачностью в GDI32, чтобы использовать его с alphaBlend?Как получить PNG с прозрачностью в GDI32 (в C#), чтобы использовать его с alphaBlend?

Я попытался поместить его непосредственно через getHbitmap/selectObject, попытался нарисовать его с помощью setPixel на временном DC, но все безрезультатно.

ответ

2

В результате я нашел (афер бессонную ночь), что проще всего получить прозрачность в GDI32 - установить Color.Black в GetHbitmap(). Например:

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

Любой другой цвет, чем черный, придаст оттенок неожиданного цвета прозрачных областей. Теперь я вполне доволен результатом: быстрое альфа-смешение в C#.