CImage类.pdfVIP

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

CImage 类 2009-04-22 10:21 CImage 类 2009 年03 月22 日 星期日 10:12 我们知道,Visual C++ 的CBitmap 类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB 中的Image 控件可 以显示出 绝大多数的外部图像文件(BMP、GIF、JPEG 等)。因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码。 现在,MFC 和ATL 共享的新类CI mage 为图像处理提供了许多相应的方法,这使得Visual C++在图像方面的缺憾一去不复返了。 CImage 类概述 CImage 是MFC 和ATL 共享的新类,它能从外部磁盘中调入一个JPEG、GIF、BMP 和PNG 格式的图像文件加以显示,而且这些文件格式可以 相互转换。由于CImage 在不同的 Windows 操作系统中其某些性能是不一样的,因此在使用时要特别注意。例如,CImage::PlgBlt 和 CImage::MaskBlt 只能在 Windows NT 4.0 或更高版本中使用,但不能运行在 Windows 95/98 应用程序中。CImage::AlphaBlend 和CImage::TransparentBlt 也只能在 Windows 2000/98 或其更高版本中使用。即使在Windows 2000 运行程序还必须将stdaf x.h 文件中的WINVER 和_WIN32_WINNT 的预定义修改成0x0500 才能正常使用。 CImage 封装了DIB(设备无关位图)的功能,因而可以让我们能够处理每个位图像素。它具有下列最酷特性: 1、AlphaBlend 支持像素级的颜色混合,从而实现透明和半透明的效果。 2、PlgBlt 能使一个矩形区域的位图映射到一个平行四边形区域中,而且还可能使用位屏蔽操作。 3、TransparentBlt 在目标区域中产生透明图像,SetTransparentColor 用来设置某种颜色是透明色。 4 、MaskBlt 在目标区域中产生源位图与屏蔽位图合成的效果。 使用CImage 的一般方法 使用CImage 的一般方法是这样的过程: (1) 打开应用程序的stdafx.h 文件添加CImage 类的包含文件: #include <atlimage.h > (2) 定义一个CImage 类对象,然后调用CImage::Load 方法装载一个外部图像文件。 (3) 调用CImage::Draw 方法绘制图像。Draw 方法具有如下定义: 程序代码: BOOL Draw( HDC hDestDC, int xDest, int yDest, int nDestWidth, int nDestHeight, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight ); BOOL Draw( HDC hDestDC, const RECT rectDest, const RECT rectSrc ); BOOL Draw( HDC hDestDC, int xDest, int yDest ); BOOL Draw( HDC hDestDC, const POINT pointDest ); BOOL Draw( HDC hDestDC, int xDest, int yDest, int nDestWidth, int nDestHeight ); BOOL Draw( HDC hDestDC, const RECT rectDest ); 其中,hDestDC 用来指定绘制的目标设备环境句柄,(xDest, yDest)和pointDest 用来指定图像显示的位置,这个位置和源图像的左上角点相对应。nDestWidth 和nDestHeight 分别指定图 像要显示的高度和宽度,xSrc 、ySrc 、nSrcWidth 和nSrcHeight 用来指定要显示的源图像的某个部分所在的位置和大小。 rectDest 和rectSrc 分别用来指定目标设备环 境上和源图像所要显示的某个部分的位置和大小。 需要说明的是,Draw 方法综合了StretchBlt、TransparentBlt 和AlphaBlend 函数的功能。默认时,Draw 的功能和 StretchBlt 相同。但当图像含有透明色或Alpha 通道时,它的功能 又和Trans

文档评论(0)

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

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档