使用 EasyX 生成动画的方法

第一步:编写代码,在代码中需要将每一帧保存为图片格式。比如,下面是一个在圆中绘制另外一个圆的程序:

#include <graphics.h>
#include <time.h>
#include <conio.h>
#include <stdio.h>

#define WINWIDTH  1200
#define WINHEIGHT  600
#define RADIUS	  280

int main()
{
	TCHAR FilenameBuffer[256];
	
	// 初始化图形模式
	initgraph(WINWIDTH, WINHEIGHT);
	//getimage(pImage,0,0, WINWIDTH-1, WINHEIGHT-1);
	setfillcolor(RED);
	fillcircle(WINWIDTH/2, WINHEIGHT/2,RADIUS);
	setfillcolor(GREEN);
	
	for (int i = 1; i < 1001; i++) {
		BeginBatchDraw();
		fillpie(
			(WINWIDTH - RADIUS)/2, 
			(WINHEIGHT - RADIUS)/2, 
			(WINWIDTH + RADIUS)/2, 
			(WINHEIGHT + RADIUS)/2, 
			0, 3.14*2/1000*i);
		EndBatchDraw();

		swprintf(FilenameBuffer,sizeof(FilenameBuffer), L"%05d.jpg", i);
		printf("%ls\n", FilenameBuffer);
		saveimage(FilenameBuffer);
	}

	// 按任意键退出
	_getch();

	// 关闭图形模式
	closegraph();
	return 0;
}

运行这个程序之后,你会在目录下找到 00000.jpg 到 01000.jpg 文件

第二步,使用 FFMPEG 将这些文件“粘”成一个视频。在 https://github.com/BtbN/FFmpeg-Builds/releases 下载编译好的 FFMPEG 工具(对应 ffmpeg-master-latest-win64-gpl 这个名称的文件)。

使用的命令是:

ffmpeg -r 25 -i %05d.jpg -b:v 4M output2.mp4

其中 -r 25表示1秒25帧, -b:v 4M 设定输出视频码率。具体请根据需要酌情修改。

最终就可以生成一个40秒的视频:

最终制作的视频可以在 B站看到:

【EasyX 制作动画视频的例子】

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注