📄 videoclass.h
字号:
// VideoClass.h: interface for the CVideoClass class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_VIDEOCLASS_H__808CC65A_2E8F_4854_A492_94F48088610D__INCLUDED_)
#define AFX_VIDEOCLASS_H__808CC65A_2E8F_4854_A492_94F48088610D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vfw.h>
#include "imageload.h"
#define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER))
#define WM_STOP_AVI WM_USER+100
CString SaveBMP(CString DataPath, CString FileName, HDIB hDib);
CString SaveJPG(CString DataPath, CString FileName, HDIB hDib, int nQulity);
void DibAddText(HDIB &hDib,CString text, CString text2="");
HDIB DDBToDIB( CBitmap& bitmap, DWORD dwCompression, CPalette* pPal );
HBITMAP DIBtoDDB(HDIB hDib);
typedef struct tagMCB{
BOOL IsIdentify;
int rate,gray;
int xPos1,yPos1,xPos2,yPos2;
}MCB;
void DrawDIB(HDC m_hDC,HDIB hDib,int left,int top,int width=0,int height=0);
class CVideoClass : public CObject
{
public:
typedef struct CaptOptionsStruc_tag
{
char fileName[MAX_PATH];//all modes
short dateIn;//all modes
short messIn;//all modes
short pos;//all modes
short fps;//AVI
short limit;//AVI
long mb;//AVI
AVICOMPRESSOPTIONS aviCompressOpts;//AVI
short addFileName;//AVI
}CaptOptionsStruc;
CaptOptionsStruc* m_pCapOptions;
//AVI Save struct
PAVIFILE m_pAVIFile;
PAVISTREAM m_pAVIStream;
PAVISTREAM m_pCompressedAVIStream;
PAVISTREAM m_pWorkingStream;
// HGLOBAL m_hDIB;
long m_SizeAVI;
long m_nFrame;
BOOL m_StopBySpace;
//
MCB mCB;
CString DataPath;
long lWidth,lHeight;
HDIB m_hDib,m_hOldDib;
public:
bool IsRecording();
void ShowVideo( HDC hDC, int iLeft, int iTop, int iWidth, int iHeight);
int InitVC(HDC hDC,HWND hWnd,CString Path=".\\BmpData\\bmp\\",BOOL FastMode=FALSE);//初始化
int * Capture(PBYTE pImage,int iChanel=0,bool bFull=false,int CaptureDelay=-1, char* text="");//抓拍图片
CString StartAVI(DWORD dwSize,DWORD nChanel=1);
void StopAVI();
int DrawImage(PBYTE hImg,HDC hDC, int iLeft,int iTop,int iWidth,int iHeight);
CVideoClass();
virtual ~CVideoClass();
private:
long OpenAVIFile(CaptOptionsStruc *pCapOptions);
long WriteDIB2AVIFile();
long CloseAVIFile(CaptOptionsStruc *pCapOptions);
void WriteLog(CString info);
private:
BOOL m_IsCapture; //是否正在保存成AVI
CRect rect;
HDC m_hDC;
HWND m_hWnd;
BOOL IsInterlaced; //是否隔行扫描
DWORD m_nChanel;
};
#endif // !defined(AFX_VIDEOCLASS_H__808CC65A_2E8F_4854_A492_94F48088610D__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -