mfc 半透明输出图片

 1)位图文件

       CBitmap bmp;

bmp.LoadBitmap(IDB_LINK_BITMAP_PICTURE);
//CDC dcMem;
//dcMem.CreateCompatibleDC(lDC);
//CBitmap *oldBitMap = dcMem.SelectObject(&bmp);
BITMAP bitmap;
bmp.GetBitmap(&bitmap);
//lDC->StretchBlt(m_xStart,m_yStart,iWidth,iHeight,&dcMem,0,0,bitmap.bmWidth,bitmap.bmWidth,SRCCOPY);
CDC dc2;
dc2.CreateCompatibleDC(lDC);
dc2.SelectObject(bmp);


BLENDFUNCTION pl;
pl.BlendOp=AC_SRC_OVER;
pl.BlendFlags=0;
pl.SourceConstantAlpha =50;
pl.AlphaFormat=0;

::AlphaBlend(lDC->GetSafeHdc(),m_xStart,m_yStart,lWidth,lHeight,dc2.GetSafeHdc(),0,0,bitmap.bmWidth,bitmap.bmHeight,pl);

        dc2.DeleteDC();
bmp.DeleteObject();

2) 使用CImage 显示半透明图片

       i) TransparentBlt 下面这个是让背景为透明的,TransparentBlt在目标区域中产生透明图像

        if(!img.IsNull())

          img.TransparentBlt (dc.m_hDC,0,0,img.GetWidth(),img.GetHeight(),RGB(255,255,255));

             一般透明色为白色,即只需要把关键色设置为白色即可。

       ii) AlphaBlend支持像素级的颜色混合,从而实现透明和半透明的效果

         

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值