利用CImage完成图片的显示、拷贝.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用CImage完成图片的显示、拷贝

??利用CImage完成图片的显示、拷贝、绘制及转换图片格式 近日一个利用VC编写的程序需要在界面上显示图片,经过查阅资料利用CImage方得实现。将相关技术点整理如下,以供以后参考。 一、??? 图片的载入 如果需要在界面上显示的是已经存在的图片,那么需要将待显示的图片载入至CImage对象之中,CImage提供了四个载入函数: ?HRESULT Load(LPCTSTR pszFileName) throw( ); HRESULT Load(IStream* pStream) throw(); void LoadFromResource(HINSTANCE hInstance, LPCTSTR pszResourceName) throw( ); void LoadFromResource(HINSTANCE hInstance, UINT nIDResource) throw( ); ?如果需要显示的图片在程序运行时需要更换则通常使用第一个函数Load(LPCTSTR pszFileName)载入图片,参数pszFileName指定要载入的图片文件;如果需要显示的图片是固定不变的,则通常使用第三个LoadFromResource(HINSTANCE hInstance, LPCTSTR pszResourceName)或第四个函数LoadFromResource(HINSTANCE hInstance, UINT nIDResource)载入图片,这两个函数是从资源中取得图片信息,每一个参数是包含有待载入图片的模块实例句柄,第二个参数是资源的ID或名称。 以下代码分别通过Load和LoadFromResource载入了图片: ?CImage m_image1;??????? // 实际代码中,被声明成了类成员a CImage m_image2;??????? // 实际代码中,被声明成了类成员 m_image1.Load(G:\\VC显示图片\\PIC\\aa.jpg); m_image2.LoadFromResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)); ?? 二、? 图片的显示 将图片载入CImage对象的目的是将其在界面之中显示出来,显示图像用到的核心函数是Draw,Draw提供了6个重载函数,通过参数名称,很容易了解参数的含义,其原型如下: ?BOOL Draw(?? HDC hDestDC,?? int xDest,?? int yDest,?? int nDestWidth,?? int nDestHeight,?? int xSrc,?? int ySrc, ?? int nSrcWidth,?? int nSrcHeight) const throw( ); ? BOOL Draw(?? HDC hDestDC,?? const RECT rectDest,牋 const RECT rectSrc) const throw( ); BOOL Draw(牋 HDC hDestDC,牋 int xDest,牋 int yDest) const throw( ); BOOL Draw(牋 HDC hDestDC,牋 const POINT pointDest) const throw( ); BOOL Draw(牋 HDC hDestDC,牋 int xDest,牋 int yDest,牋 int nDestWidth,牋 int nDestHeight) const throw( ); BOOL Draw(牋 HDC hDestDC,牋 const RECT rectDest) const throw( ); ?如果要以控件的大小来显示图片,可以通过以下代码实现: if(m_image2.IsNull())??? //判断有无图像?? ??????? return;?? ? // 取得客户区尺寸?? CRect zcRect;?? GetDlgItem(IDC_STATIC_PIC2)-GetClientRect(zcRect);?? ? // 将图像显示在界面之上?? m_image2.Draw(GetDlgItem(IDC_STATIC_PIC2)-GetDC()-m_hDC,?? ??????????????????????????? zcRect.left,?? ??????????????????????????? zcRect.top,?? ??????????????????????????? zcRect.Width(),?? ???????????????????

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档