前言:
目前我们对“用c语言处理图像的方法”大约比较重视,咱们都想要分析一些“用c语言处理图像的方法”的相关文章。那么小编同时在网摘上网罗了一些关于“用c语言处理图像的方法””的相关知识,希望你们能喜欢,咱们快快来学习一下吧!追溯到上世纪90年代,早期的动画是画在透明塑料板上,把需要的图层一张张叠起来,然后用摄像机拍一帧,一帧就搞定了,然后再画下一帧。某些没有变化的部分可以沿用上一帧的那个板子。比如一个人说话那画几张嘴和一个脸,然后用脸+不同张的嘴就能做出整个镜头了。
也有点类似于我们小时候玩过的动画小手册一样。
动画原理:
动画效果是指让静态的图像在屏幕上产生运动的视觉效果,它的原理是利用人眼的视觉暂留现象,即人眼在看到一个物体后,会在短时间内保留这个物体的影像。如果在这段时间内,快速地显示不同的图像,人眼就会认为这些图像是连续的,从而形成动画效果。一般来说,每秒显示24帧以上的图像,就可以让人眼感觉到流畅的动画效果。
操作步骤:
而接下来,我们可以使用C语言程序,将这些图像展示成一个动画效果。
要使用Easy X和C语言制作动画效果,我们需要以下几个步骤:
1、初始化绘图窗口,设置窗口的大小、背景色、坐标系等属性。
2、使用loadimage函数加载或创建要显示的图像,可以是位图、JPEG、PNG等格式的文件,也可以是用Easy X函数绘制的图形。
3、在循环中,根据时间或事件,改变图像的位置、大小、角度、透明度等属性,然后用putimage函数将图像绘制到绘图窗口中。
使用putimage时我们不再使用之前讲的那么简单的参数版本,而是使用更多参数的一个版本:
void loadimage(IMAGE* pDstImg, // 保存图像的 IMAGE 对象指针LPCTSTR pResType, // 资源类型LPCTSTR pResName, // 资源名称int nWidth = 0, // 图片的拉伸宽度int nHeight = 0, // 图片的拉伸高度bool bResize = false // 是否调整 IMAGE 的大小以适应图片);
即
void putimage(int dstX, // 绘制位置的 x 坐标int dstY, // 绘制位置的 y 坐标int dstWidth, // 绘制的宽度int dstHeight, // 绘制的高度IMAGE *pSrcImg, // 要绘制的 IMAGE 对象指针int srcX, // 绘制内容在 IMAGE 对象中的左上角 x 坐标int srcY, // 绘制内容在 IMAGE 对象中的左上角 y 坐标DWORD dwRop = SRCCOPY // 三元光栅操作码);
关键参数:
srcX srcY:
他俩表示的是image图像中的左上角位置,那么加上前面第三第四参数的作用,我们就可以做到选择性的输出图片中的部分内容!!
4、在每次绘制图像后,延时时间,然后再次使用putimage函数再次展示下一话图片。
5、在循环结束后,用closegraph函数关闭绘图窗口,释放资源。
完整代码:
下面是一个简单的示例代码,它可以实现一个圆形图像在绘图窗口中左右移动的动画效果:
//微信公众号:工控小新#include <graphics.h> // 引用图形库头文件#include <conio.h>int main(){ int i; IMAGE img; initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素 loadimage(&img,".//tjq.png"); //加载项目中图片 while(1) { for(i=0;i<4;i++) { putimage(100,100,160,210,&img,i*160,0,SRCCOPY); Sleep(500); } for(i=0;i<4;i++) { putimage(100,100,160,210,&img,i*160,210,SRCCOPY); Sleep(500); } } getch(); // 按任意键继续 closegraph(); // 关闭绘图窗口 return 0;}
觉得有用的话,动动你们的小手,点个赞和转发在看,非常感谢!!!
点赞加关注,学习不迷路
微信公众号|工控小新
EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中
#挑战30天在头条写日记#
标签: #用c语言处理图像的方法 #c语言处理图像