博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码_图像_透明复合
阅读量:2338 次
发布时间:2019-05-10

本文共 1353 字,大约阅读时间需要 4 分钟。

/**图像合成函数*输入:客户区GDI句柄*输出:空*/void abc::paintPicAnd(CDC *cdc){//变量初始化	CRect rect;	CBitmap f_bmp,b_bmp,m_bmp;	CDC f_cdc,b_cdc,m_cdc;	COLORREF colorTran;	GetClientRect(rect);	CBrush brush(RGB(255,255,255));//CDC适配创建	f_cdc.CreateCompatibleDC(cdc);	b_cdc.CreateCompatibleDC(cdc);	m_cdc.CreateCompatibleDC(cdc);//Bitmap创建	f_bmp.LoadBitmap(IDB_FRONT);	b_bmp.LoadBitmap(IDB_BACK);	m_bmp.CreateBitmap(rect.Width(),rect.Height(),1,1,NULL);//遮罩层创建的是单色图片,黑白作为逻辑(二值性)//CDC,Bitmap绑定	f_cdc.SelectObject(&f_bmp);	b_cdc.SelectObject(&b_bmp);	m_cdc.SelectObject(&m_bmp);//遮罩层填充	colorTran=f_cdc.GetPixel(1,1);	f_cdc.SetBkColor(colorTran);	m_cdc.SelectObject(&brush);	m_cdc.FillRect(&rect,&brush);//前景复制到遮罩层,真彩向单色拷贝时,真彩的背景色拷贝为白色,其他颜色为黑色	m_cdc.BitBlt(0,0,rect.Width(),rect.Height(),&f_cdc,0,0,SRCCOPY);///遮罩 与 复制到前景,单色向真彩转换时,白色转为真彩的背景色,黑色转为前景色	f_cdc.SetBkColor(RGB(0,0,0));//遮罩层底色黑色	f_cdc.SetTextColor(RGB(255,255,255));//遮罩层画笔白色//	cdc->BitBlt(0,0,rect.Width(),rect.Height(),&m_cdc,0,0,SRCCOPY);	f_cdc.BitBlt(0,0,rect.Width(),rect.Height(),&m_cdc,0,0,SRCAND);//遮罩 与 复制到背景	b_cdc.SetBkColor(RGB(255,255,255));//遮罩层底色白色	b_cdc.SetTextColor(RGB(0,0,0));//遮罩层画笔黑色	b_cdc.BitBlt(0,0,rect.Width(),rect.Height(),&m_cdc,0,0,SRCAND);//前景 或 复制到背景	b_cdc.BitBlt(0,0,rect.Width(),rect.Height(),&f_cdc,0,0,SRCPAINT);//背景复制到客户区		cdc->BitBlt(0,0,rect.Width(),rect.Height(),&b_cdc,0,0,SRCCOPY);}

转载地址:http://xngpb.baihongyu.com/

你可能感兴趣的文章
顶级域名注册分布统计:2006年09月 .com .de .net .uk .cn
查看>>
雅虎通可以批量添加MSN用户了
查看>>
应届生如何应聘雅虎中国/阿里巴巴工作职位
查看>>
豆瓣“我上”:一个blog就是一本有趣的书
查看>>
速度比较:GMail/MSN/Yahoo!Mail
查看>>
搜索引擎来路关键词的挖掘:百度统计的高级分析报告导出获取来源关键词
查看>>
C/C++题目--拷贝构造函数概念
查看>>
C/C++题目--内存管理
查看>>
C/C++题目--深复制与浅复制
查看>>
数据结构教程--李春葆版(总结)之线性表-顺序存储结构练习题
查看>>
数据结构教程--李春葆版(总结)之排序-插入排序
查看>>
centos7单用户模式修改root密码
查看>>
linux文件类型
查看>>
ls命令
查看>>
alias,which命令
查看>>
数组名和指针的区别
查看>>
栈和堆的具体区别
查看>>
如何判断一个点在矩形内
查看>>
析构函数何时被调用
查看>>
C++虚函数底层机制
查看>>