mfc的drawimage方法详解

mfc的drawimage方法详解

ID:34724427

大小:78.68 KB

页数:7页

时间:2019-03-10

mfc的drawimage方法详解_第1页
mfc的drawimage方法详解_第2页
mfc的drawimage方法详解_第3页
mfc的drawimage方法详解_第4页
mfc的drawimage方法详解_第5页
资源描述:

《mfc的drawimage方法详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.Image和Bitmap类概述GDI+的Image类封装了对BMP、GIF、JPEG、PNG、TIFF、WMF(Windows元文件)和EMF(增强WMF)图像文件的调入、格式转换以及简单处理的功能。而Bitmap是从Image类继承的一个图像类,它封装了Windows位图操作的常用功能。例如,Bitmap::SetPixel和Bitmap::GetPixel分别用来对位图进行读写像素操作,从而可以为图像的柔化和锐化处理提供一种可能。2.DrawImage方法DrawImage是GDI+的Graphics类显示图像的核心方法,它的重载函数有许多个。常用的一般重载函数有:Stat

2、usDrawImage(Image*image,INTx,INTy);StatusDrawImage(Image*image,constRect&rect);StatusDrawImage(Image*image,constPoint*destPoints,INTcount);StatusDrawImage(Image*image,INTx,INTy,INTsrcx,INTsrcy,INTsrcwidth,INTsrcheight,UnitsrcUnit);其中,(x,y)用来指定图像image显示的位置,这个位置和image图像的左上角点相对应。rect用来指定被图像填充的矩形区

3、域,destPoints和count分别用来指定一个多边形的顶点和顶点个数。若count为3时,则表示该多边形是一个平行四边形,另一个顶点由系统自动给出。此时,destPoints中的数据依次对应于源图像的左上角、右上角和左下角的顶点坐标。srcx、srcy、srcwidth和srcheight用来指定要显示的源图像的位置和大小,srcUnit用来指定所使用的单位,默认时使用PageUnitPixel,即用像素作为度量单位。3.调用和显示图像文件在GDI+中调用和显示图像文件是非常容易的,一般先通过Image或Bitmap调入一个图像文件构造一个对象,然后调用Graphics::D

4、rawImage方法在指定位置处显示全部或部分图像。例如下面的代码:voidCEx_GDIPlusView::OnDraw(CDC*pDC){CEx_GDIPlusDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);usingnamespaceGdiplus;Graphicsgraphics(pDC->m_hDC);Imageimage(L"sunflower.jpg");graphics.DrawImage(&image,10,10);Rectrect(130,10,image.GetWidth(),image.GetHeight());graph

5、ics.DrawImage(&image,rect);}两次DrawImage的结果是不同的,按理应该相同,这是怎么一回事?原来,DrawImage在不指定显示区域大小时会自动根据设备分辨率进行缩放,从而造成显示结果的不同。当然,也可以使用Bitmap类来调入图像文件来构造一个Bitmap对象,其结果也是一样的。例如,上述代码可改为:Bitmapbmp(L"sunflower.jpg");graphics.DrawImage(&bmp,10,10);Rectrect(130,10,bmp.GetWidth(),bmp.GetHeight());graphics.DrawImage(

6、&bmp,rect);需要说明的是,Image还提供GetThumbnailImage的方法用来获得一个缩略图的指针,调用DrawImage后可将该缩略图显示,这在图像预览时极其有用。例如下面的代码:Graphicsgraphics(pDC->m_hDC);Imageimage(L"sunflower.jpg");Image*pThumbnail=image.GetThumbnailImage(50,50,NULL,NULL);//显示缩略图graphics.DrawImage(pThumbnail,20,20);//使用后,不要忘记删除该缩略图指针deletepThumbnail

7、;4.图像旋转和拉伸图像的旋转和拉伸通常是通过在DrawImage中指定destPoints参数来实现,destPoints包含对新的坐标系定义的点的数据。destPoints中的第一个点是用来定义坐标原点的,第二点用来定义X轴的方法和图像X方向的大小,第三个是用来定义Y轴的方法和图像Y方向的大小。若destPoints定义的新坐标系中两轴方向不垂直,就能达到图像拉伸的效果。下面的代码就是图像旋转和拉伸的一个示例,Imageimage(L"sunflower.jpg"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。