- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(MFC的DrawImage方法详解
Image和Bitmap类概述 GDI+的Image类封装了对BMP、GIF、JPEG、PNG、TIFF、WMF(Windows元文件)和EMF(增强WMF)图像文件的调入、格式转换以及简单处理的功能。而Bitmap是从Image类继承的一个图像类,它封装了Windows位图操作的常用功能。例如,Bitmap::SetPixel和Bitmap::GetPixel分别用来对位图进行读写像素操作,从而可以为图像的柔化和锐化处理提供一种可能。
DrawImage方法 DrawImage是GDI+的Graphics类显示图像的核心方法,它的重载函数有许多个。常用的一般重载函数有:Status DrawImage( Image* image, INT x, INT y);Status DrawImage( Image* image, const Rect rect);Status DrawImage( Image* image, const Point* destPoints, INT count);Status DrawImage( Image* image, INT x, INT y, INT srcx, INT srcy, INT srcwidth, INT srcheight, Unit srcUnit); 其中,(x,y)用来指定图像image显示的位置,这个位置和image图像的左上角点相对应。rect用来指定被图像填充的矩形区域, destPoints和count分别用来指定一个多边形的顶点和顶点个数。若count为3时,则表示该多边形是一个平行四边形,另一个顶点由系统自动给出。此时,destPoints中的数据依次对应于源图像的左上角、右上角和左下角的顶点坐标。srcx、srcy、srcwidth 和srcheight用来指定要显示的源图像的位置和大小,srcUnit用来指定所使用的单位,默认时使用PageUnitPixel,即用像素作为度量单位。
调用和显示图像文件 在GDI+中调用和显示图像文件是非常容易的,一般先通过Image或Bitmap调入一个图像文件构造一个对象,然后调用Graphics::DrawImage方法在指定位置处显示全部或部分图像。例如下面的代码:void CEx_GDIPlusView::OnDraw(CDC* pDC){ CEx_GDIPlusDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); using namespace Gdiplus; Graphics graphics( pDC-m_hDC ); Image image(Lsunflower.jpg); graphics.DrawImage(image, 10,10); Rect rect(130, 10, image.GetWidth(), image.GetHeight()); graphics.DrawImage(image, rect);} 两次DrawImage的结果是不同的,按理应该相同,这是怎么一回事?原来,DrawImage在不指定显示区域大小时会自动根据设备分辨率进行缩放,从而造成显示结果的不同。 当然,也可以使用Bitmap类来调入图像文件来构造一个Bitmap对象,其结果也是一样的。例如,上述代码可改为: Bitmap bmp(Lsunflower.jpg); graphics.DrawImage(bmp, 10,10); Rect rect(130, 10, bmp.GetWidth(), bmp.GetHeight()); graphics.DrawImage(bmp, rect); 需要说明的是,Image还提供GetThumbnailImage的方法用来获得一个缩略图的指针,调用DrawImage后可将该缩略图显示,这在图像预览时极其有用。例如下面的代码: Graphics graphics( pDC-m_hDC ); Image image(Lsunflower.jpg); Image* pThumbnail = image.GetThumbnailImage(50, 50, NULL, NULL); // 显示缩略图 graphics.DrawImage(pThumbnail, 20, 20); // 使用后,不要忘记删除该缩略图指针 delete pThumbnail;
图像旋转和拉伸 图像的旋转和拉伸通常是通过在DrawImage中指定destPoints参数来实现,destPoints包含对新的坐标系定义的点的数据。destPoints中的第一个点是用来定义坐标原点的,
您可能关注的文档
- (Linux日志管理篇.docx
- [专题七学习先进人物传递社会正能量.doc
- [专题七展苞初放的唐五代词导学案.doc
- (Linux服务器日志文件查找技巧精粹.doc
- (Linux服务器日志管理详解.doc
- [专题三三角函数平面向量与解三角形.doc
- (linux期末复习.doc
- [专题三中国古代思想文化.doc
- [专题一技术与设计1整体解读.doc
- (linux权限相关.doc
- 企业碳排放核算与报告编制 课件 项目3.3航空行业核算.pptx
- 企业碳排放核算与报告编制 课件 项目3.2化工行业核算.pptx
- 单片机应用技术项目教程(C语言版)(第3版)课件 项目五 存储系统设计.ppt
- 《HarmonyOS鸿蒙应用开发》-项目4 参透ArkUI开发智慧——字号字体适老化.doc
- 鸿蒙应用开发案例实战(ArkTS版)(AI助学)(微课版) 课件 项目7 融会贯通——七彩天气App开发之旅 .pptx
- Python财务数据分析与应用(微课版) 课件 第2章 python语言基础.pptx
- Python财务数据分析与应用(微课版)- 教案 第6章 财务数据挖掘.docx
- 农村电子商务 课件 模块1--4 农村电子商务基础 ---农村电子商务新媒体运营.pptx
- 鸿蒙应用开发案例实战(ArkTS版)(AI助学)(微课版) 课件 项目3 深入ArkTS高级特性——模拟田忌赛马.pptx
- Python财务数据分析与应用(微课版) 课件 第8章 上市公司财务数据获取与财务状况分析.pptx
最近下载
- --水库除险加固工程下闸蓄水验收建设管理工作报告汇.doc
- 艺考合作计划书.pptx VIP
- 2023被动式超低能耗建严寒和寒冷地区居住建筑.docx VIP
- GB/T 2484-2023固结磨具 形状类型、标记和标志.pdf
- TBT1632.3-2019 钢轨焊接 第3部分:铝热焊接.pdf VIP
- 一元一次不等式 课件.pptx VIP
- 2家政服务 合同管理规范DB44!T 2290—2021.pdf VIP
- GB51057-2015 种植塑料大棚工程技术规范.pdf VIP
- Unit 8 Collecting as a hobby 词汇 课件 沪教牛津版英语七年级上册 .pptx VIP
- 牛津版三年级上册英语全册新优质教学课件(配2024年秋改版教材).pptx
文档评论(0)