mfc中插入PNG透明图片
mfc中插入PNG透明图片
- 记录下在mfc中插入png透明图片的方法
- 新建项目
- 在对话框界面中插入两个 Picture Control
- 在MFC_pngDlg.h中添加
- 在MFC_pngDlg.cpp中添加图片透明处理函数
- 修改确认按钮点击事件
- 运行效果
记录下在mfc中插入png透明图片的方法
新入坑c++,使用的是vs2015,想在一个mfc项目中插入外部的png图片。发现默认的image控件只能直接拖放bmp格式图片。然后在网上学习了如何加载png图片,现在来总结一下。
新建项目
新建一个基于对话框的mfc项目 MFC_png
在对话框界面中插入两个 Picture Control
为了对比效果,我在界面中插入了两个 Picture Control,分别修改id为 IDC_STATIC1 , IDC_STATIC2
右键选择图片控件,分别添加变量 m_img1 , m_img2
在MFC_pngDlg.h中添加
CImage img;
CRect rect;
在MFC_pngDlg.cpp中添加图片透明处理函数
void TransparentPNG(CImage *png)
{for (int i = 0; i <png->GetWidth(); i++) //遍历像素处理{for (int j = 0; j <png->GetHeight(); j++){byte * pucColor = (byte *)(png->GetPixelAddress(i, j));pucColor[0] = pucColor[0] * pucColor[3] / 255;pucColor[1] = pucColor[1] * pucColor[3] / 255;pucColor[2] = pucColor[2] * pucColor[3] / 255;}}
}
修改确认按钮点击事件
void CMFC_pngDlg::OnBnClickedOk()
{m_img1.GetClientRect(&rect); //获得pictrue控件所在的矩形区域CDC *dc1 = m_img1.GetDC();//获得pictrue控件1的DcCDC *dc2 = m_img2.GetDC();//获得pictrue控件2的Dcint height, width;if (!img.IsNull()) img.Destroy();CString imgPath1 = _T("H:\\temp\\02.png");img.Load(imgPath1);height = img.GetHeight();width = img.GetWidth();if (!img.IsNull()) img.Draw(dc1->m_hDC, CRect(0, 0, width, height));//图片控件1展示未处理的图片TransparentPNG(&img); //调用透明化处理函数if (!img.IsNull()) img.Draw(dc2->m_hDC, CRect(0, 0, width, height));//图片控件2展示处理后的图片}
运行效果
为了对比效果,我将背景色改成绿色了。
点击确定后可以看出,
图片框1的图片透明部分显示为白色了
图片框2的图片透明部分正常显示。
示例图片:
mfc中插入PNG透明图片相关推荐
- 在网页中插入一个透明背景的PNG图片
在网页中插入一个透明背景的PNG图片,可是在显示的时候,它的背景就成灰色了.这是IE的bug.需要加入以下代码: <script language="jscript"> ...
- 在可编辑div中插入文字或图片的问题解决思路
最近在网上碰到一个人问了我一个问题,在可编辑div中插入文字或者图片.因为web在线编辑器我从来只是用,基本不会去研究源代码.后来正好一个在线聊天web项目中也要用到这个功能,我就特地看看了代码. 基 ...
- python 网页中插入自己的图片
** python 网页中插入自己的图片 ** 初学python根据这个教程做出来了博客的界面https://blog.csdn.net/u014793102/article/details/8037 ...
- C# Word文档中插入、提取图片,文字替换图片
Download Files: http://www.c-sharpcorner.com/UploadFile/26b237/image-operations-using-word-document- ...
- 【LaTeX】IEEE会议模板中插入双栏图片(解决报错:Undefined control sequence. \subfloat
目录 一.问题描述 二.解决方案 三.引用参考 一.问题描述 使用IEEE会议论文LaTeX模板时遇到的一个错误,问题描述为:使用Texstudio编译LaTeX模板报错,报错信息提示为Undefin ...
- 在Word简历中插入照片(图片)
第一步先是插入图片: 在简历中插入照片可能会是一个问题.因为插入的照片会把光标前后的文字分隔开来.解决这个问题的方法就是设置插入的照片格式为上浮于文字就行了.以Word 2007为例,在照片.图片上面 ...
- Apache poi如何在word中的表格中插入表格,图片等操作
1.引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</arti ...
- 使用POI向Excel中插入多張图片
2019独角兽企业重金招聘Python工程师标准>>> POI3.0以上版本才支持向Excel中插入图片 http://apache.freelamp.com/jakarta/poi ...
- java 用poi-tl向word中插入数据,图片
最近写点东西练练手,就是页面中表格输入的数据要存入word的模板当中,记录一下 看了几种办法大概就是: poi-tl,word模板引擎,可以根据模板来创建word文档,很简单也方便上手. Jacob, ...
最新文章
- 0x开头的颜色值和#开头的颜色值的区别以及转化
- 老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
- 使用NMAKE管理工程
- 人脸识别领域相关金融标准将出台
- 爬虫程序,从图片网站或者贴吧爬取图片(含代码)
- 人工智能:CNN过时了,有人提出GNN
- Android 3D开发,OpenGL ES 的使用(一)
- 【经典回放】JavaScript学习详细干货笔记之(二)
- python串口数据绘图_使用Python串口实时显示数据并绘图的例子
- 3)Thymeleaf th:* 设置/修改属性值详解
- Python中文分词库jieba用法代码示例
- 以太坊源码分析(37)eth以太坊协议分析
- Drupal采集,Drupal文章采集爬虫采集插件(附图文)
- 音视频的同步原理——老文章,比较清晰
- python参考手册 豆瓣_详解python 模拟豆瓣登录(豆瓣6.0)
- Web全栈~29.MySQL
- ICMP协议(网际控制报文协议)
- 获取用户参数_SAP刘梦_新浪博客
- CFS调度器负载计算
- 廖雪峰的博客——一个Python学习网站
热门文章
- bat批处理,变量不生效
- 难得轻闲-海豚湾恋人
- 解决win2019安装.net3.5的问题,亲测可行(未成功启用报错,找不到源文件报错,统统解决。。)
- AutoCAD Civil 3D 介绍
- 静坐常思己过 闲谈莫论人非
- 【C++---16】常指针和常引用
- 【时空序列预测第四篇】PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive
- 142个手机短信笑话
- 239期夏天计算机开机号,福彩3D16239期便民工作室提供中国福彩中心开机号239期开机号...
- web移动端-视口是什么