`
jiav_net
  • 浏览: 104469 次
文章分类
社区版块
存档分类
最新评论

VC中镂空图的实现方法(简略代码)

 
阅读更多


CvvImage img;
img.CopyOf(m_pImgIn, m_pImgIn->nChannels);
CRect rc(0, 0, m_pImgIn->width, m_pImgIn->height);

CDC dcDest;
dcDest.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, m_pImgIn->width, m_pImgIn->height);
dcDest.SelectObject(&bmp);
img.DrawToHDC(dcDest.GetSafeHdc(), rc);
		
CBitmap bmpTmp;
bmpTmp.LoadBitmap(IDB_BITMAP_FOREGND);
CDC dcFg;
dcFg.CreateCompatibleDC(&dcDest);
dcFg.SelectObject(&bmpTmp);

// m_bmpFg中保存了将要被镂空后嵌入背景的图片
BITMAP bm;
m_bmpFg.GetBitmap(&bm);
int nWidth = bm.bmWidth;
int nHeight = bm.bmHeight;

// 创建兼容位图
CBitmap bmpImage, *pBmpImage;
bmpImage.CreateCompatibleBitmap(&dcDest, rc.Width(), rc.Height());
		
 // 创建单色掩码位图
CBitmap bmpMask, *pBmpMask;
bmpMask.CreateBitmap(nWidth, nHeight, 1, 1, NULL);
CDC dcImage;
dcImage.CreateCompatibleDC(&dcDest);
CDC dcMask;
dcMask.CreateCompatibleDC(&dcDest);
pBmpImage = (CBitmap*)(dcImage.SelectObject(&bmpImage));
pBmpMask = (CBitmap*)(dcMask.SelectObject(&bmpMask));

dcImage.BitBlt(0, 0, nWidth, nHeight, &dcFg, 0, 0, SRCCOPY);

// 设置透明色
COLORREF clrTransparent = RGB(192, 192, 192);
dcImage.SetBkColor(clrTransparent);

// 生成透明区域为白色,其它区域为黑色的掩码位图
dcMask.BitBlt(0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCCOPY);	

// 生成透明区域为黑色,其它区域保持不变的位图
dcImage.SetBkColor(RGB(0, 0, 0));
dcImage.SetTextColor(RGB(255, 255, 255));
dcImage.BitBlt(0, 0, nWidth, nHeight, &dcMask, 0, 0, SRCAND);


int nOutPosX = 50;
int nOutPosY = 100;
// 透明部分保持屏幕不变,其它部分变成黑色
dcDest.SetBkColor(RGB(255, 255, 255));
dcDest.SetTextColor(RGB(0, 0, 0));
dcDest.BitBlt(nOutPosX, nOutPosY, nWidth, nHeight, &dcMask, 0, 0, SRCAND);

// "或"运算,生成最终效果
dcDest.BitBlt(nOutPosX, nOutPosY, nWidth, nHeight, &dcImage, 0, 0, SRCPAINT);
pDC->BitBlt(0, 0, rc.Width(), rc.Height(), &dcDest, 0, 0, SRCCOPY);

dcImage.SelectObject(pBmpImage);
dcImage.DeleteDC();
dcMask.SelectObject(pBmpMask);
dcMask.DeleteDC();
bmpImage.DeleteObject();
bmpMask.DeleteObject();



分享到:
评论

相关推荐

    用vc实现串口通信的完整代码.rar

    用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的完整代码.rar用vc实现串口通信的...

    vc6.0灰度图像量化的实现代码

    vc6.0灰度图像量化的实现代码,可设置量化级数

    VC代码 RT_INJECT (实用代码源)

    VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码...

    多种VC定时器、延时实现方法源代码

    VC++开发Windows程序的7种定时器实现方法源代码

    VC代码 supergrid (实用代码源)

    VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码源)VC代码 supergrid (实用代码...

    镂空VC代码…………

    镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空镂空

    VC代码 fterm-smth (实用代码源)

    VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth (实用代码源)VC代码 fterm-smth ...

    VC代码 newpropbutton_demo (实用代码源)

    VC代码 newpropbutton_demo (实用代码源)VC代码 newpropbutton_demo (实用代码源)VC代码 newpropbutton_demo (实用代码源)VC代码 newpropbutton_demo (实用代码源)VC代码 newpropbutton_demo (实用代码源)VC代码 ...

    VC代码 newpropbutton_src (实用代码源)

    VC代码 newpropbutton_src (实用代码源)VC代码 newpropbutton_src (实用代码源)VC代码 newpropbutton_src (实用代码源)VC代码 newpropbutton_src (实用代码源)VC代码 newpropbutton_src (实用代码源)VC代码 ...

    VC代码 fontcombo_src (实用代码源)

    VC代码 fontcombo_src (实用代码源)VC代码 fontcombo_src (实用代码源)VC代码 fontcombo_src (实用代码源)VC代码 fontcombo_src (实用代码源)VC代码 fontcombo_src (实用代码源)VC代码 fontcombo_src (实用代码源)VC...

    VC代码 camfr-1.2 (实用代码源)

    VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码源)VC代码 camfr-1.2 (实用代码...

    VC代码 CButtonST_Source (实用代码源)

    VC代码 CButtonST_Source (实用代码源)VC代码 CButtonST_Source (实用代码源)VC代码 CButtonST_Source (实用代码源)VC代码 CButtonST_Source (实用代码源)VC代码 CButtonST_Source (实用代码源)VC代码 CButtonST_...

    VC代码 vczx_XPCtrlInterface (实用代码源)

    VC代码 vczx_XPCtrlInterface (实用代码源)VC代码 vczx_XPCtrlInterface (实用代码源)VC代码 vczx_XPCtrlInterface (实用代码源)VC代码 vczx_XPCtrlInterface (实用代码源)VC代码 vczx_XPCtrlInterface (实用代码源)...

    VC代码 bardemo (实用代码源)

    VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 bardemo (实用代码源)VC代码 ...

    VC数据库代码生成器

    文件包含: 《代码生成器源代码》代码生成器源代码 《TestSqlServer》应用代码生成器生成的源代码使用例程。 《VC 对SQL SERVER 2000数据库的代码生成器及访问方法.pdf》说明书。

    VC环境下MFC实现图形显示的源程序代码

    VC环境下MFC实现图形显示的程序代码 可以画直线、各种二维图形 可以进行颜色,线条粗细改变……

    VC 实现BMP图片剪切

    VC实现图片剪切VC实现图片剪切VC实现图片剪切VC实现图片剪切VC实现图片剪切VC实现图片剪切

    用VC来实现的图像复原源代码,包括图像退化、复原、非约束复原等

    用VC来实现的图像复原源代码,包括图像退化、复原、非约束复原等

    各种图片格式转换vc实现

    各种图片格式转换vc实现

    二维码vc 实现的源代码

    二维码vc 源代码 二维码vc 源代码 二维码vc 源代码 二维码vc 源代码

Global site tag (gtag.js) - Google Analytics