EasyX指导手册(7)

2019-08-17 13:14

参数:

pImg绘图设备指针。如果为NULL,表示默认的绘图窗口。 返回值:

返回绘图设备句柄(HDC)。 说明:

获取到的HDC句柄可以用在WindowsGDI函数中。

每个IMAGE对象都有一个HDC句柄,可以通过HDC句柄实现对该IMAGE的GDI函数操作。在同一个IMAGE设备中,请勿混用EasyX绘图函数和GDI绘图函数。

如果获取默认绘图窗口的HDC句柄,那么执行GDI函数后并不会直接显示到屏幕上,请执行FlushBatchDraw()显示之前的GDI操作效果。

示例:

#include #include voidmain() {

//初始化绘图窗口 initgraph(640,480);

//获取默认绘图窗口的HDC句柄 HDChdc=GetImageHDC(); //执行WindowsGDI绘图函数 MoveToEx(hdc,10,10,NULL); LineTo(hdc,100,100);

//使之前的WindowsGDI绘图生效 FlushBatchDraw();

//创建大小为200x200的img对象 IMAGEimg(200,200); //获取该img对象的HDC句柄 hdc=GetImageHDC(&img); //执行WindowsGDI绘图函数 Ellipse(hdc,0,50,199,150); //将img对象显示到绘图窗口上面 putimage(100,0,&img); //按任意键退出 getch(); closegraph(); }

2.5.4GetWorkingImage

这个函数用于获取当前的绘图设备。

IMAGE*GetWorkingImage(); 返回值:

返回指向当前绘图设备的指针。如果返回值为NULL,表示当前绘图设备为绘图窗口。 2.5.5IMAGE 保存图像的对象。

classIMAGE(intwidth=0,intheight=0); 成员: (隐藏)

由于EasyX库面向初学者,所以尽力隐藏了面向对象的内容。 示例:以下语句可以创建一个名为img的IMAGE对象: IMAGEimg;

更多示例请参考putimage函数示例。 2.5.6loadimage

这个函数用于从文件中读取图像。

//从图片文件获取图像(bmp/jpg/gif/emf/wmf/ico) voidloadimage(

IMAGE*pDstImg,//保存图像的IMAGE对象指针 LPCTSTRpImgFile,//图片文件名 intnWidth=0,//图片的拉伸宽度 intnHeight=0,//图片的拉伸高度

boolbResize=false//是否调整IMAGE的大小以适应图片 );

//从资源文件获取图像(bmp/jpg/gif/emf/wmf/ico) voidloadimage(

IMAGE*pDstImg,//保存图像的IMAGE对象指针 LPCTSTRpResType,//资源类型 LPCTSTRpResName,//资源名称 intnWidth=0,//图片的拉伸宽度 intnHeight=0,//图片的拉伸高度

boolbResize=false//是否调整IMAGE的大小以适应图片 ); 参数: pDstImg

保存图像的IMAGE对象指针。如果为NULL,表示图片将读取至绘图窗口。 pImgFile

图片文件名。支持bmp/jpg/gif/emf/wmf/ico类型的图片。gif类型的图片仅加载第一帧,不支持透明。

nWidth

图片的拉伸宽度。加载图片后,会拉伸至该宽度。对于矢量图片十分有用。 nHeight

图片的拉伸高度。加载图片后,会拉伸至该高度。对于矢量图片十分有用。 bResize

是否调整IMAGE的大小以适应图片。 pResType 图片资源类型。 pResName 图片资源名称。 说明:

如果创建IMAGE对象的时候没有指定宽高,可以通过Resize函数设置。

对于没有设置宽高的IMAGE对象,执行loadimage会将其宽高设置为和读取的图片一样的尺寸。

示例:

以下范例加载图片“D:\\test.jpg”至绘图窗口: #include #include //主函数 voidmain() {

//绘图环境初始化 initgraph(640,480); //读取图片至绘图窗口

loadimage(NULL,\//按任意键退出 getch(); closegraph(); }

2.5.7putimage

这个函数的几个重载用于在当前设备上绘制指定图像。 //绘制图像 voidputimage(

intdstX,//绘制位置的x坐标 intdstY,//绘制位置的y坐标

IMAGE*pSrcImg,//要绘制的IMAGE对象指针

DWORDdwRop=SRCCOPY//三元光栅操作码(详见备注) );

//绘制图像(指定宽高和起始位置)

voidputimage(

intdstX,//绘制位置的x坐标 intdstY,//绘制位置的y坐标 intdstWidth,//绘制的宽度 intdstHeight,//绘制的高度

IMAGE*pSrcImg,//要绘制的IMAGE对象指针

intsrcX,//绘制内容在IMAGE对象中的左上角x坐标 intsrcY,//绘制内容在IMAGE对象中的左上角y坐标 DWORDdwRop=SRCCOPY//三元光栅操作码(详见备注) ); 参数:

(详见各重载函数原型内的注释) 备注:

三元光栅操作码(即位操作模式),支持全部的256种三元光栅操作码,常用的几种如下:

值 DSTINVERT

MERGECOPY

MERGEPAINT

NOTSRCCOPY

NOTSRCERASE

PATCOPY PATINVERT

PATPAINT

SRCAND SRCCOPY SRCERASE

SRCINVERT

含义

绘制出的像素颜色=NOT屏幕颜色

绘制出的像素颜色=图像颜色AND当前填充颜色 绘制出的像素颜色=屏幕颜色OR(NOT图像颜色) 绘制出的像素颜色=NOT图像颜色

绘制出的像素颜色=NOT(屏幕颜色OR图像颜色) 绘制出的像素颜色=当前填充颜色

绘制出的像素颜色=屏幕颜色XOR当前填充颜色

绘制出的像素颜色=屏幕颜色OR((NOT图像颜色)OR当前填充颜色)

绘制出的像素颜色=屏幕颜色AND图像颜色 绘制出的像素颜色=图像颜色

绘制出的像素颜色=(NOT屏幕颜色)AND图像颜色 绘制出的像素颜色=屏幕颜色XOR图像颜色

SRCPAINT

注:

绘制出的像素颜色=屏幕颜色OR图像颜色

1.AND/OR/NOT/XOR为布尔运算。

2.\屏幕颜色\指绘制所经过的屏幕像素点的颜色。 3.\图像颜色\是指通过IMAGE对象中的图像的颜色。

4.\当前填充颜色\是指通过setfillstyle设置的用于当前填充的颜色。 5.查看全部的三元光栅操作码请点这里:三元光栅操作码。

示例:

以下局部代码将屏幕(0,0)起始的100x100的图像拷贝至(200,200)位置: IMAGEimg;

getimage(&img,0,0,100,100); putimage(200,200,&img); 2.5.8Resize

这个函数用于调整指定绘图设备的尺寸。 voidResize(IMAGE*pImg,intwidth,intheight); 参数:

pImg指定要调整尺寸的绘图设备。如果为NULL,则表示默认绘图窗口。 width指定绘图设备的宽度。 height指定绘图设备的高度。 2.5.9rotateimage

这个函数用于旋转IMAGE中的绘图内容。

voidrotateimage(IMAGE*dstimg,IMAGE*srcimg,doubleradian,

COLORREFbkcolor=BLACK,boolautosize=false,boolhighquality=true); 参数:

dstimg指定目标IMAGE对象指针,用来保存旋转后的图像。 srcimg指定原IMAGE对象指针。 radian指定旋转的弧度。

bkcolor指定旋转后产生的空白区域的颜色。默认为黑色。

autosize指定目标IMAGE对象是否自动调整尺寸以完全容纳旋转后的图像。默认为false。

srcimg指定是否采用高质量的旋转。在追求性能的场合请使用低质量旋转。默认为true。 示例:

以下示例加载图片\并旋转30度(PI/6),然后显示在左上角: #include #include #definePI3.1415926535 voidmain()


EasyX指导手册(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:六(上)《比的认识》集体评课

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: