|
简单的jpeg转成avi的类(13) { //ofstream fout ("temp.txt", ios::out); //fout.close (); AviGenerator generator; for (int i = 1; i <= 38; ++i) { char c[32]; sprintf (c, "mao%02d", i);//加入jpeg文件,我有mao01~38.jpg文件 strcat (c, ".jpg"); cout << c << endl; generator.add_frame (c); } cout << "generating avi file......" << endl; if (argc >=2) generator.set_avi_file (argv[1]); else generator.set_avi_file ("mao.avi"); generator.set_fps (15); generator.set_avi_size (230, 100); generator.generate_avi (); //system ("pause"); return 0; }
Makefile文件就不作了,只有两个.cpp文件,对于大家编译应该没有什么问题吧。 笔者在原有的基础上把原来的C代码改写成了一个类,便于使用(如果不喜欢完全可以去找“原版”的C代码),并加入了Win32平台的支持(其实对于笔者来说没什么用——笔者的程序是在Linux下运行的)。 笔者在VC2003、VC2005 beta1编译,以及用g++、C++都是没有问题的,生成的avi文件用media player正常播放,但是因为没有进行压缩,所以个头有点大(有空我会考虑进行改进的^_^),但是比个别程序的生成方式还是有优势的。存储和传输的时候大家可以用WinRAR压缩(作个免费广告,压缩率大得惊人)。 另外,重载了<<,没用上,因为笔者对标准库不熟悉,没有找到可以写入二进制的办法,所以回到了调用c函数的路上。如果你有办法可以告诉笔者吗? 不断学习中……,欢迎email交流。 darkstar21cn@hotmail.com
|