在MFC开发中,大家很容易用到PNG等流行媒体格式。但是MFC只提供了简单的BMP,ICON等文件的加载。此时,使用CImage将使得图片加载轻松自如。

CImage加载导入图片

首先加载动态图片进入资源文件。在资源视图中右键RC-》add resource-》Import,选择你要添加的PNG图片,将分类定义为“PNG”,ID自定义。

下列函数取自测试工程,其中m_Image为CImage实例,nID 为PNG图片在资源中的ID,sTR 为资源分类,设置为“PNG”

BOOL CCImageTestDlg::ImageFromIDResource()

{

UINT nID = IDR_PNG1;

LPCTSTR sTR = _T("PNG");

//UINT nID = IDB_BITMAP1;

//LPCTSTR sTR = RT_BITMAP;

HINSTANCE hInst = AfxGetResourceHandle();

HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // type

if (!hRsrc)

return FALSE;

// load resource into memory

DWORD len = SizeofResource(hInst, hRsrc);

BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);

if (!lpRsrc)

return FALSE;

// Allocate global memory on which to create stream

HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len);

BYTE* pmem = (BYTE*)GlobalLock(m_hMem);

memcpy(pmem,lpRsrc,len);

IStream* pstm;

CreateStreamOnHGlobal(m_hMem,FALSE,&pstm);

// load from stream

m_Image.Load(pstm);

// free/release stuff

GlobalUnlock(m_hMem);

pstm->Release();

FreeResource(lpRsrc);

}

这样,我们就可以将PNG图片通过资源文件加载起来。

动态的加载PNG图片

CString path;

CImage image;

HRESULT hr = image.Load(path);

完事了~

希望对大家有用,over。

c 语言解析png图片文件信息,使用CImage加载PNG图片文件相关推荐

  1. Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题

    今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...

  2. mfc cimage加载显示图片_在微信小程序里实现图片预加载组件

    网页中的图片预加载 我们知道在 Web 页面中实现图片的预加载其实很简单,通常的做法是在 JS 中使用 Image 对象即可,代码大致如下 var image = new Image() image. ...

  3. android html图片点击事件,TextView加载html图片并点击放大

    实际上android中的textview是提供了加载html代码的功能的,使用的方法也很简单 textView.setText(Html.fromHtml("html",null, ...

  4. 前端之路:html2canvas脱坑,(图片模糊,多次加载,图片跨域)

    有女票的程序员真的颓废,都不记得多久没写心路历程了(T T). 插件简介: 1.官网:http://html2canvas.hertzen.com/ 2.GitHub:https://github.c ...

  5. android加载so文件失败,Android无法加载'.so.1'文件

    我想你还没有通过JNI加载原生库到Java的概念. 首先在java中定义本地方法并在本机中执行相应的实现并编译它(您必须按照命名约定注册本地方法1)2)在jni_onload中注册本地方法...我认为 ...

  6. android 9图片报错,Android2.1加载9Patch图片运行后报错

    今天遇到一个很无语的问题,竟然是9Patch图片上多加了光晕效果. 因为需要自定义Button,所以请用了9Patch图片,而且图片上面还有一点光晕效果,同样也被拉伸了,在2.2的系统上面正常能跑,2 ...

  7. c语言加载本地图片,Unity加载本地图片的2种方式

    1. 使用 WWW 加载,详细查看 unity3d 官方文档. 2. 使用 System.IO 加载,lua 代码如下: local File = luanet.import_type("S ...

  8. google支持本地ajax,360chrome,google chrome浏览器使用jquery.ajax加载本地html文件

    使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...

  9. LabVIEW写入可快速加载的TDMS文件

    LabVIEW写入可快速加载的TDMS文件 TDMS文件格式的设计目的是在尽可能快地读写数据的同时仍保持足够的灵活性来适应采集过程中通道数量和采样率的变化. 但是数据读写速度快的文件未必可快速加载. ...

最新文章

  1. leetcode 268. Missing Number
  2. 德州寒流对IDC带来极大影响
  3. android 重新设置lcd分辨率,wm命令使用方法(修改android 分辨率)修改
  4. c语言单片机常用函数,C51单片机C语言函数编辑 -单片机-电子工程世界网
  5. 「产品经理全连接系列2」企业如何开展敏捷或DevOps的研发变革
  6. 通过组策略集中管理管理用户桌面和开始菜单
  7. 软件体系结构风格整理
  8. Javascript 设置Cookie
  9. 毕向东java基础,B站直达,目录,b站浏览目录太难受,在这做一个
  10. 微信步数修改.html,httpCatcher,charles修改微信步数,支付宝森林能量满满
  11. QT调用巴斯勒相机的使用
  12. # 3 网页实现吃豆子动画
  13. (2)QlikView安装
  14. matlab光子晶体求反射率,一维光子晶体禁带结构的MATLAB分析计算讲解.PDF
  15. Android允许应用具有安装权限
  16. html input hiden,input hidden属性
  17. python 哪些比赛-国内数据挖掘比赛有哪些?
  18. A PM2.5 concentration estimation method based on multi-feature combination of image patches文章详解
  19. python 爬虫 爬取当当网图书信息
  20. if与switch的性能比较

热门文章

  1. HTML中 单复选框的用法
  2. Java电商平台之订单功能和支付功能实现
  3. Android问题解决-部分机型上传图片失败
  4. 调焦距离S远近与景深之关系
  5. python列表中删除奇数行_shell 删除奇数偶数行
  6. 天创速盈带您速读:怎么提升拼多多关键词综合排名?方案如下
  7. ~6. ccf 2021-09-1 数组推导
  8. 【第三方API】顺丰电子面单SDK调用总结-java
  9. 我上岸了!深度剖析我的小红书 后台开发面经,以及我的 社招面试题目分享。
  10. Vue Hello world