注意:只针对32位带alpha通道的BMP!

第一种方法(显示小图标不清晰):

 //加载位图CImage sourceImage;sourceImage.LoadFromResource(AfxGetInstanceHandle(), IDB_BMP_NX);//新建位图CImage showImage;showImage.Create(sourceImage.GetWidth(), sourceImage.GetHeight(), 32, CImage::createAlphaChannel);//转换数据if (sourceImage.GetBPP() == 32) //确认该图像包含Alpha通道 ,即改图片是否是32位像素{for (int i = 0; i < sourceImage.GetWidth(); i++){for (int j = 0; j < sourceImage.GetHeight(); j++){byte* pByte = (byte*)sourceImage.GetPixelAddress(i, j);byte* pByte2 = (byte*)showImage.GetPixelAddress(i, j);if (pByte[3] < 255)//alpha通道值{pByte2[0] = (pByte[0] * pByte[3] + 127) / 255;pByte2[1] = (pByte[1] * pByte[3] + 127) / 255;pByte2[2] = (pByte[2] * pByte[3] + 127) / 255;pByte2[3] = pByte[3];}else{pByte2[0] = pByte[0];pByte2[1] = pByte[1];pByte2[2] = pByte[2];pByte2[3] = pByte[3];}}}}//显示位图showImage.Draw(dc.GetSafeHdc(), 0, 0, sourceImage.GetWidth(), sourceImage.GetHeight(), 0, 0, showImage.GetWidth(), showImage.GetHeight());

第二种方法(推荐:小图显示清晰细腻):

 //关联DCGraphics graphics(dc.m_hDC);//加载位图HBITMAP hbmp = (HBITMAP)::LoadImage(GetModuleHandle(NULL),"C:\\Users\\HP\\Desktop\\replace_part.8s.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);//获取位图数据BITMAP bm;GetObject(hbmp, sizeof(bm), &bm);BYTE* source = (BYTE*)bm.bmBits;//新建32位带alpha通道的BitmapBitmap bitmap(bm.bmWidth, bm.bmHeight, PixelFormat32bppARGB);//拷贝位图数据Gdiplus::BitmapData datas;Gdiplus::Rect rc(0, 0, bm.bmWidth, bm.bmHeight);bitmap.LockBits(&rc, ImageLockModeWrite, PixelFormat32bppARGB, &datas);byte* dest = (byte*)(datas.Scan0);for (int i = 0; i < bm.bmHeight; i++){memcpy(dest + (i * bm.bmWidthBytes),source + ((bm.bmHeight - i - 1) * bm.bmWidthBytes), bm.bmWidthBytes);}bitmap.UnlockBits(&datas);//绘制位图graphics.DrawImage(&bitmap, 0, 0);//删除资源DeleteObject(hbmp);

MFC—显示NX图标或透明背景图标相关推荐

  1. MFC实战篇——图片旋转、控件PictureControl 清除显示、伪彩、直方图显示、为按钮添加背景图标、设置程序图标

    文章目录 一.图片旋转 二.MFC 控件PictureControl 清除显示 三.伪彩 四.直方图 五.为按钮添加背景图标 六.设置图标 七.改变组框外观 一.图片旋转 建立图片控件 改变图片控件I ...

  2. PPT制作三大技巧:图标 、图片背景透明和自动函数

    制作PPT的时候常常会遇到自己的内容和下载的PPT模板不匹配问题,包含图标.图片.背景等相关方面.因此本篇博客就从这几个方面入手给出三大制作PPT的技巧. 一.图标 图标给PPT观众以清晰形象的感官. ...

  3. 设计透明背景的ICON(网页小图标)

      Designo总会有不同成图的洁癖,只是需要纯粹的图案.   而在网页设计和App设计的时候,会用到透明背景的logo或者是icon之类的.上述的icon出现在网页设计中就是"网页小图标 ...

  4. C#系列---⑥如何制作背景透明的ico图标、如何将图片白色背景转换为透明背景

    我们在做软件的时候为了提高用户的体验度,我们更倾向于利用图片向用户展示我们各个模块的功能,这样既美观简洁又快速上手.那如何将我们喜欢的图片制作成透明背景的ico图标呢,下面将我查到的方法分享给大家,站 ...

  5. 显示控件——图标类之动画图标

    该控件是将一些连续的图标循环显示以实现动画的效果.一组图标动画播放的间隔为一个时钟周期(约200ms),该控件属性中有"开始值""停止值",当变量值和开始值相同 ...

  6. java图标中设置背景、文本框设置大小、标签中字体的格式

    ImageIcon icon = new ImageIcon("C:\\Users\\lenovo\\Pictures\\Saved Pictures\\小.jpg");dayBt ...

  7. MFC修改图标简单方法(包括exe图标,任务栏图标,应用程序运行左上角图标)

    先说原理,在MFC中,应用程序的图标调用默认的图标,默认图标的资源ID为IDR_MAINFRAME,与资源ID对应的图标路径为:...\\工程名字\\res\\ 工程名字.ico,然后在构造函数中装载 ...

  8. VC TreeCtrl 添加图标 背景色透明

    一般情况下,我们如果碰到需要在程序中使用图标的问题,首先要想到要用图像列表CimlageList类,该类是相同尺寸的图像或图标的集合,每个图像或图标用以"0"为基准的索引号来表征, ...

  9. PNG透明背景显示之路

    在VC7.1中 MFC图形处理类里有一个强大的成员---CImage,这个类提供了从外部磁盘中调入一个JPEG.GIF.BMP和PNG格式的图像文件加以显示,而且这些文件格式可以相互转换.由于CIma ...

  10. android 耳机图标显示图标,一种耳机图标的显示方法及终端与流程

    本发明涉及通信领域,特别是一种耳机图标的显示方法及终端. 背景技术: 目前的手机耳机类型,主要有三类:不带microphone的三段式耳机:带microphone的欧标耳机(也叫国标):带microp ...

最新文章

  1. 2021入门推荐系统,应该从哪入手?
  2. Yslow on Nodejs server
  3. 直播预告丨深耕用户价值,实战保险业数字化升级
  4. 2017广东工业大学程序设计竞赛决赛--Problem B: 占点游戏
  5. 小波相干wtc matlab,实现时间序列的小波相干性分析,并画出图谱
  6. Kafka REST Proxy for MapR Streams入门
  7. 搭建你的嵌入式Vxworks开发环境
  8. 从淘宝来看后端架构发展
  9. tensorflow 小于_TensorFlow做Sparse Machine Learning
  10. Javascript第五章删除、克隆、插入、替换方法源码第九课
  11. svn提交报错Previous operation has not finished; run 'cleanup' if it was interrupted
  12. 射极跟随器实验报告数据处理_电压跟随器秘笈:运放构成电压跟随器的稳定性问题探讨...
  13. 软件开发UI设计流程
  14. xssgame第六关至第八关
  15. Forth 常见问题解答
  16. python中loads和dumps,load和dump的区别
  17. jpeg压缩解压缩简介
  18. 2022年欢迎来到Jsp编程第二课:JSP核心九大内置对象
  19. Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory
  20. 在web代理中对于大的POST数据使用 REQUEST_CONTENT

热门文章

  1. 神秘的古文明 ———— 埃及文化
  2. 一个“蝇量级” C 语言协程库 -- Protothreads
  3. Exchange Rate Difference
  4. 力扣-多线程专项(一)(按序打印、交替打印、打印零与奇偶数)
  5. 原生安卓开发!最详细的解释小白也能听懂,全网独家首发!
  6. QPalette类详细使用方法
  7. Simon的新中文“百万格子”重磅推出
  8. 当笑神姜涛遇上尼古拉斯赵四,低俗加上恶俗的结果是否就是封杀?
  9. 【java】使用Stanford CoreNLP处理英文(词性标注/词形还原/解析等)
  10. 浅析网吧电影服务器配置与搭建(转)