admin 管理员组文章数量: 1086019
2024年5月7日发(作者:国产最好的a级suv)
getimage / putimage / loadimage / saveimage 这一组命令和 IMAGE 对象可以
实现图像处理的相关功能,下面逐个介绍。
(有点类似 tc 中的 imagesize)
[加载图片]
实现加载图片主要分三步:
1. 定义 IMAGE 对象
2. 读取图片至 IMAGE 对象
3. 显示 IMAGE 对象到需要的位置
很简单,我们看一下完整的代码:
#include
#include
void main()
{
initgraph(640, 480);
IMAGE img; // 定义 IMAGE 对象
loadimage(&img, "C:"); // 读取图片到 img 对象中
putimage(0, 0, &img); // 在坐标 (0, 0) 位置显示 IMAGE 对象
getch();
closegraph();
}
注意要显示的图片是 C:,你可以修改为自己的图片路径。
如果只需要加载图片到绘图窗体上, 那么请将 loadimage 的第一个参数设置为
NULL 即可,这样就不需要定义 IMAGE 对象了。
[保存屏幕区域]
和加载图片类似,我们可以从屏幕的某个区域加载图像至 IMAGE 对象,然后再
putimage 到需要的地方。
获取屏幕区域的代码格式:
getimage(IMAGE& img, int x, int y, int w, int h);
参数说明:
img: 保存该屏幕区域的 IMAGE 对象
x, y: 区域的左上角坐标
w, h: 区域的宽和高(注意:不是右下角坐标)
看代码:
#include
#include
void main()
{
initgraph(640, 480);
// 定义 IMAGE 对象
IMAGE img;
// 绘制内容
circle(100, 100, 20);
line(70, 100, 130, 100);
line(100, 70, 100, 130);
// 保存区域至 img 对象
getimage(&img, 70, 70, 60, 60);
// 将 img 对对象显示在屏幕的某个位置
putimage(200, 200, &img);
getch();
closegraph();
}
[移动复杂的图案]
复杂的图案如果要移动,每次都重新绘制显然效率很低,移动的时候会出现严重的屏
幕闪烁。
而 getimage / putimage 的效率十分高,我们可以将复杂的图案用 getimage 保
存下来,然后再逐步 putimage 实现复杂图案的移动。
这个代码就不举例了,作为作业大家练习吧。
版权声明:本文标题:c语言添加图片 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1715051524a685417.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论