使用的头文件需预先到EasyX官网下载,得到的graphics头文件最好放到编译器include文件夹。
loadimage函数
loadimage函数用于从文件中读取图像,即加载图片。
EasyX中对loadimage函数的解释:
// 从资源文件获取图像(bmp/gif/jpg/png/tif/emf/wmf/ico)
void loadimage{
IMAGE* pDstImg; // 保存图像的 IMAGE 对象指针
LPCTSTR pResType; // 资源类型
LPCTSTR pResName; // 资源名称
int nWidth = 0; // 图片的拉伸宽度
int nHeight = 0; // 图片的拉伸高度
bool bResize = false; // 是否调整 IMAGE 的大小以适应图片
};
loadimage(&img,“C:\tupian.jpg”,a,b);可以通过(a,b)选择缩放图片的大小来适应窗口大小。
putimage函数
putimage函数的几个重载用于在当前设备上绘制指定图像。
EasyX中对putimage函数的解释:
void putimage{
int dstX; // 绘制位置的 x 坐标
int dstY; // 绘制位置的 y 坐标
IMAGE *pSrcImg; // 要绘制的 IMAGE 对象指针
DWORD dwRop = SRCCOPY // 三元光栅操作码
};
比如putimage(x,y,&a);可以实现把已经把图片放到a中的图片在指定位置(x,y)上显示。
也可以使用putimage()函数实现图片某一部分的指定显示,需要提前准备掩码图和背景图:
putimage(start_x,start_y,tx,ty,&img,img_x,img_y,SRCAND);//掩码图
putimage(start_x,start_y,tx,ty,&img,img_x,img_y,SRCPAINT);//背景图
//start_x,start_y确定图片显示的位置
//tx,ty 确定要取的图片大小
//img_x,img_y 确定所取图片开始位置点
//掩码图使用SRCAND,背景图使用SRCPAINT
//如果索取图片是整部分不予以细分,可以省去img_x,img_y的取值
具体实现代码如下:
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
int main() {
initgraph(640,480); //预先定义打开绘图窗口大小
IMAGE img; //定义图像对象名称为img
loadimage(&img,_T( "C:\\Users\\abc\\Desktop\\tupian\\test.jpg"));//如果没有把图片和代码放在一个文件夹里,要注意写图片的完整路径,把图片test.jpg放到img对象中
putimage(30,30,&img);//这里实现图片在位置(30,30)显示
_getch();
closegraph(); //关闭绘图窗口
return 0;
代码中loadimage中使用到的_T使用了定义#define _T(x) __T(x),作用是让程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理像中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。