透明位图的实现?该怎么处理

透明位图的实现?
现在有一张位图透明位图的实现?该怎么处理
最终要实现成这样的透明效果:透明位图的实现?该怎么处理就是半透明化。。。
纯用DC怎么能实现?处理过程:先把四个角透明→再把剩余的椭圆办透明化
求大神们只招。。
------解决方案--------------------
做一个半透明的png图片
CImage image;
image.Load(L"D:\\用户目录\\Pictures\\example.png");
image.Draw(GetDC()->m_hDC,CRect(0,0,320,240));

如果用程序算,则取透明点对应的两个图的颜色,把RGB分别加起来除2,调整两个图的RGB权重可得到不同的透明度。
------解决方案--------------------
首先在 DC 上绘制付窗口这块区域的完整部分,然后用 TransparentBlt 绘制上去。
------解决方案--------------------
纯DC?
AlphaBlend
------解决方案--------------------
第一步,用PHOTOSHOP处理掉4个角,形成新的图片
第二步,用双缓冲的内存DC上画图片
第三步,设置透明度,用AlphaBlend把内存DC拷贝到背景DC上
------解决方案--------------------
引用:
做一个半透明的png图片
CImage image;
image.Load(L"D:\\用户目录\\Pictures\\example.png");
image.Draw(GetDC()->m_hDC,CRect(0,0,320,240));

如果用程序算,则取透明点对应的两个图的颜色,把RGB分别加起来除2,调整两个图的RGB权重可得到不同的透明度。


这个貌似是GDI++,GDI++绘图运行效率不高呀