李成笔记网

专注域名、站长SEO知识分享与实战技巧

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

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言