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透明图片相关推荐

  1. 在网页中插入一个透明背景的PNG图片

    在网页中插入一个透明背景的PNG图片,可是在显示的时候,它的背景就成灰色了.这是IE的bug.需要加入以下代码: <script language="jscript"> ...

  2. 在可编辑div中插入文字或图片的问题解决思路

    最近在网上碰到一个人问了我一个问题,在可编辑div中插入文字或者图片.因为web在线编辑器我从来只是用,基本不会去研究源代码.后来正好一个在线聊天web项目中也要用到这个功能,我就特地看看了代码. 基 ...

  3. python 网页中插入自己的图片

    ** python 网页中插入自己的图片 ** 初学python根据这个教程做出来了博客的界面https://blog.csdn.net/u014793102/article/details/8037 ...

  4. C# Word文档中插入、提取图片,文字替换图片

    Download Files: http://www.c-sharpcorner.com/UploadFile/26b237/image-operations-using-word-document- ...

  5. 【LaTeX】IEEE会议模板中插入双栏图片(解决报错:Undefined control sequence. \subfloat

    目录 一.问题描述 二.解决方案 三.引用参考 一.问题描述 使用IEEE会议论文LaTeX模板时遇到的一个错误,问题描述为:使用Texstudio编译LaTeX模板报错,报错信息提示为Undefin ...

  6. 在Word简历中插入照片(图片)

    第一步先是插入图片: 在简历中插入照片可能会是一个问题.因为插入的照片会把光标前后的文字分隔开来.解决这个问题的方法就是设置插入的照片格式为上浮于文字就行了.以Word 2007为例,在照片.图片上面 ...

  7. Apache poi如何在word中的表格中插入表格,图片等操作

    1.引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</arti ...

  8. 使用POI向Excel中插入多張图片

    2019独角兽企业重金招聘Python工程师标准>>> POI3.0以上版本才支持向Excel中插入图片 http://apache.freelamp.com/jakarta/poi ...

  9. java 用poi-tl向word中插入数据,图片

    最近写点东西练练手,就是页面中表格输入的数据要存入word的模板当中,记录一下 看了几种办法大概就是: poi-tl,word模板引擎,可以根据模板来创建word文档,很简单也方便上手. Jacob, ...

最新文章

  1. 0x开头的颜色值和#开头的颜色值的区别以及转化
  2. 老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
  3. 使用NMAKE管理工程
  4. 人脸识别领域相关金融标准将出台
  5. 爬虫程序,从图片网站或者贴吧爬取图片(含代码)
  6. 人工智能:CNN过时了,有人提出GNN
  7. Android 3D开发,OpenGL ES 的使用(一)
  8. 【经典回放】JavaScript学习详细干货笔记之(二)
  9. python串口数据绘图_使用Python串口实时显示数据并绘图的例子
  10. 3)Thymeleaf th:* 设置/修改属性值详解
  11. Python中文分词库jieba用法代码示例
  12. 以太坊源码分析(37)eth以太坊协议分析
  13. Drupal采集,Drupal文章采集爬虫采集插件(附图文)
  14. 音视频的同步原理——老文章,比较清晰
  15. python参考手册 豆瓣_详解python 模拟豆瓣登录(豆瓣6.0)
  16. Web全栈~29.MySQL
  17. ICMP协议(网际控制报文协议)
  18. 获取用户参数_SAP刘梦_新浪博客
  19. CFS调度器负载计算
  20. 廖雪峰的博客——一个Python学习网站

热门文章

  1. bat批处理,变量不生效
  2. 难得轻闲-海豚湾恋人
  3. 解决win2019安装.net3.5的问题,亲测可行(未成功启用报错,找不到源文件报错,统统解决。。)
  4. AutoCAD Civil 3D 介绍
  5. 静坐常思己过 闲谈莫论人非
  6. 【C++---16】常指针和常引用
  7. 【时空序列预测第四篇】PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive
  8. 142个手机短信笑话
  9. 239期夏天计算机开机号,福彩3D16239期便民工作室提供中国福彩中心开机号239期开机号...
  10. web移动端-视口是什么