64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
//**********************************//
|
|
// Modified 2003 //
|
|
//**********************************//
|
|
#if !defined(AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_)
|
|
#define AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_
|
|
|
|
#include <vfw.h>
|
|
|
|
#define TEXT_HEIGHT 20
|
|
#define AVIIF_KEYFRAME 0x00000010L
|
|
#define BUFSIZE 260
|
|
|
|
class CAVIFile : public CObject
|
|
{
|
|
public:
|
|
CAVIFile();
|
|
CAVIFile(LPCTSTR lpszFileName, int xdim=-1, int ydim=-1, int rate=50);
|
|
virtual ~CAVIFile();
|
|
|
|
public:
|
|
virtual BOOL AddFrame(CBitmap& bmp);
|
|
virtual BOOL AddFrame(XString sBitmapFile);
|
|
virtual BOOL IsOK() const {return m_bOK;};
|
|
|
|
CString GetFName() const {return m_sFileName;};
|
|
void SetHasSaveOptionsDialog();
|
|
void Init(LPCTSTR lpszFileName, int xdim, int ydim, int rate);
|
|
BOOL Compress();
|
|
void SetHasSaveOptionsDialog(BOOL bFlag=TRUE);
|
|
BOOL HasSaveOptionsDialog();
|
|
void SetSaveOptionsParentWnd(HWND hWnd=NULL);
|
|
HWND GetSaveOptionsParentWnd();
|
|
void SetColorNum(UINT nColor=8);//用来控制质量
|
|
UINT GetColorNum();//8、16、24、32
|
|
|
|
protected:
|
|
BOOL LoadBMPImage(const TCHAR *filename,CBitmap& bitmap);
|
|
HANDLE MakeDib(HBITMAP hbitmap,UINT bits);
|
|
|
|
protected:
|
|
CString m_sFileName;
|
|
int m_nColorNum;
|
|
int m_nRate;
|
|
int m_nXDim;
|
|
int m_nYDim;
|
|
int m_nFrame;
|
|
BOOL m_bOK;
|
|
BOOL m_bHasSaveOptionsDialog;
|
|
HWND m_hSaveOptionsParentWnd;
|
|
|
|
private:
|
|
AVISTREAMINFO m_strhdr;
|
|
PAVIFILE m_pfile;
|
|
PAVISTREAM m_ps;
|
|
PAVISTREAM m_psCompressed;
|
|
PAVISTREAM m_psText;
|
|
DWORD m_dwTextFormat;
|
|
char m_szText[BUFSIZE];
|
|
AVICOMPRESSOPTIONS m_opts;
|
|
AVICOMPRESSOPTIONS FAR * m_pOpts[1];
|
|
|
|
};
|
|
#endif // !defined(AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_)
|