如何显示含有有alpha通道的32位bmp图片

解决方案 »

  1.   

    转成 Gdiplus::Bitmap
    通过
    CGraphics::DrawImage()
    即可
      

  2.   

    就用最基本的GDI里面的AlphaBlend即可。不过要求你的32位BMP事先进行过一次预乘操作(即将图片与黑色背景混合后的效果,在大多数游戏中这可以事先由美工在PS中完成)
      

  3.   


    在许多2D游戏中都是这样来实现Alpha混合效果的。特别是标准GDI的AlphaBlend比GDI+中的要快很多,游戏中很少用GDI+绘图的。
      

  4.   


    BitBlt你会用吧?就和那个大体差不多啊,只是最后要指定一个BLENDFUNCTION的结构,里面可以指定是否使用Alpha通道、全局Alpha值等各种参数。具体可以在MSDN中查AlphaBlend