Easy AVI






4.82/5 (11投票s)
一个用于创建 AVI 文件的类。
引言
本文介绍了一个封装 AVI 文件创建的类。同时,也提供了一个小示例,演示如何使用它以 15 FPS 的帧率录制桌面。目前它不支持音频。
使用代码
AVI 对象非常精简且易于使用。一个限制是所有帧必须具有相同的大小,并且调色板不能更改。示例代码使用 32 位 BPP DIB 部分录制桌面,因此满足了这些要求。
AVI 类
class CAVI
{
public:
CAVI();
~CAVI();
BOOL Open(DWORD FPS = 30);
CString Close();
BOOL AddFrame(CDIBFrame & DIBFrame);
BOOL IsOpen() const {return m_bOpen;}
protected:
void Init();
void Term();
BOOL CreateStream(CDIBFrame & DIBFrame);
void ReleaseStream();
protected:
BOOL m_bInit,m_bOpen,m_bStream;
CString m_csFileName;
DWORD m_dwFPS,m_dwFrame;
PAVIFILE m_pAVIFile;
PAVISTREAM m_pAVIStream,m_pAVICompressedStream;
};
通过声明一个 CAVI
对象来实例化该类。
CAVI Avi;
通过打开它并设置所需的 FPS 来准备录制。
Avi.Open(15);
通过使用接受来自 DIB 部分创建的位图的 AddFrame
添加帧。
Avi.AddFrame(DIB);
通过调用 Close
结束录制。 这将返回临时 AVI 文件在用户temp目录中的位置。
CString csFile = Avi.Close();
历史
- 2012/11/23 - 文章提交。