关于C语言中实现图片的读取和指定位置绘制

使用的头文件需预先到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,前者就是通常使用的单字节方式,但这种方式处理像中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值