请帮我用vc++编个avi提取bmp的小程序

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:08:42
就是把一个avi中提取转化出一帧一帧bmp图像.
另外,用新建一个MFC AppWizard工程的话,是要在哪里添加,修改源码的?里面有好多的类什么的,不知道在哪个文件写源码?完全新手!!

邮箱:slamdunk_l@163.com

这个问题主要用到 msvfw32.dll 中的API. 所以需要vfw32.lib并include <vfw.h>

1. 由 AVI 文件创建 AVI 流:
AVIFileInit();
AVIFileOpen(&aviFile,AVIFileName,OF_READ,NULL);
AVIFileGetStream(aviFile,&aviStream,streamtypeVIDEO,0);
AVIFileRelease(aviFile);
AVIStreamInfo(aviStream,&aviStreamInfo,sizeof(aviStreamInfo));

2. 将第k帧取出来:
PGETFRAME pgf=AVIStreamGetFrameOpen(aviStream,NULL);
LPBITMAPINFOHEADER lpbi=(LPBITMAPINFOHEADER)AVIStreamGetFrame(pgf,k);
AVIStreamGetFrameClose(pgf);

4. 将 lpbi 指向的BITMAP数据头和数据写入BMP文件。

5. 最后是打扫战场:
AVIFileExit();

详细源码请参考 http://www.codeproject.com/KB/audio-video/AVI2BMP.aspx
有完整的VC工程文件,可以下载下来研究。下载后解压缩后双击avi2bmp.dsw, 即可在VC中打开。不必新建一个MFC AppWizard工程。

这个源码是做控制台程序的。如果要做图形界面,完全可以参考他的做法。但是如果是一个完全新手,要在哪里添加修改源码都不知道,建议你别拿这个题目练手。还需要用简单的题目把VC的界面搞清楚再说。

我也希望知道,我也是新