网站大量收购独家精品文档,联系QQ:2885784924

(GDI总结三CImage类使用.docxVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(GDI总结三CImage类使用

GDI 总结三: CImage类使用 分类: 图形图像处理 2011-12-21 09:16 7477人阅读 评论(3) 收藏 举报 imagenullextensionbytefilepath?前言 CImage类是基于GDI+的,但是这里为什么要讲归于GDI? 主要是基于这样的考虑: 在GDI+环境中,我们可以直接使用GDI+ ,没多少必要再使用CImage类 但是,如果再GDI环境中,我们要想使用GDI+,有点麻烦,还得加入头文件,加入启动GDI+的代码和关闭GDI+的代码,显得太罗嗦了,GDI??的CBitmap 处理功能又有局限,只能处理BMP格式的图片。 怎么办?这时,我们便可使用CImage类,因为这个类本身封装了GDI+得使用环境,所以无需我们手动设置,简化了我们的操作。 同时,又可以利用GDI+中强大的图片处理功能,及可以简便的与CBitmap对象进行转换 ,大大方便了在GDI环境下,进行各种图片处理工作 。 其实,将其称作 GDI/ GDI+ 混合编程,这样才更确切些。 ??为什么引入CImage类?? CBitmap 类只能处理BMP格式的图片,非常受限。 而CImage可以处理JPGE GIF BMP PNG多种格式图片,扩展了图片处理功能 且能与CBitmap 进行转换( 因为所载入的位图句柄都是HBITMAP,所以可相互转换),因此引入CImage类进行图像处理 CImage provides enhanced bitmap support, including the ability to load and save images in JPEG, GIF, BMP, and Portable Network Graphics (PNG) formats?CImage类介绍 ?CImage是MFC和ATL共享的新类,它能从外部磁盘中调入一个JPEG、GIF、BMP和PNG格式的图像文件加以显示,而且这些文件格式可以相互转换。 CImage是VC.NET中定义的一种MFC/ATL共享类,也是ATL的一种工具类,它提供增强型的(DDB和DIB)位图支持,可以装入、显示、转换和保存多种格式的图像文件,包括BMP、GIF、JPG、PNG、TIF等。CImage是一个独立的类,没有基类。(CImage类是基于GDI+的,从VC.NET起引进,VC 6.0中没有。) ATL(Active Template Library,活动模板库)是一套基于模板的 C++ 类,用以简化小而快的 COM 对象的编写。为了在MFC程序中使用CImage类,必须包含ATL的图像头文件atlimage.h:(在VS08 SP1中不用包含) #include atlimage.h??1? 加载位图文件?[cpp] view plaincopyprint??//?CImage可加载的图片文件有JPG,BMP,TIF.PNG等格式?而CBitmap只能加载BMP图片文件?if(!PathFileExists(imgFilePath))?return?NULL;???CImage?nImage;??nImage.Load(imgFilePath);??return?nImage.Detach();??//返回HBITMAP可用CBitmap?处理?也可用CImage处理? // CImage可加载的图片文件有JPG,BMP,TIF.PNG等格式 而CBitmap只能加载BMP图片文件if(!PathFileExists(imgFilePath)) return NULL;CImage nImage;nImage.Load(imgFilePath);return nImage.Detach(); //返回HBITMAP可用CBitmap 处理 也可用CImage处理 2 与CBitmap转换?[cpp] view plaincopyprint?CImage?nImage;??nImage.Load(imgFilePath);???HBITMAP?hBitmap=nImage.Detach();?//?获得位图句柄?用以转换???//?转换方式一:?CBitmap?bmp;??bmp.DeleteObject();??bmp.Attach(hBitmap);?//??转换为CBitmap对象???//?转换方式二:??CBitmap?*pBitmap=CBitmap::FromHandle(nImage.m_hBitmap);??CImage nImage;nImage.Load(imgFilePath);HBITMAP hBitmap=nImage.Detach(); // 获得位图句柄 用以转换// 转换方式一:CBitmap bmp

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档