欢迎来到天天文库
浏览记录
ID:18642843
大小:102.00 KB
页数:24页
时间:2018-09-19
《vc++编写摄像头录制系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++编写基于摄像头录制系统首先编写该程序之前,必须要用到微软公司给我们提供的音视频函数库vfw。VFW(VideoforWindows)是Microsoft推出的关于数字视频的一个软件开发包,VFW的核心是AVI文件标准。AVI(AudioVideoInterleave)文件中的音、视频数据帧交错存放。围绕AVI文件,VFW推出了一整套完整的视频采集、压缩、解压缩、回放和编辑的应用程序接口(API)。由于AVI文件格式推出较早且在数字视频技术中有广泛的应用,所以VFW仍然有很大的实用价值,而且进一步发展的趋势。在VC++开发环境中调用VFW
2、和使用其它开发包没有什么不同,只是需要将VFW32.lib文件加入工程中,但在开放视频捕捉与压缩管理程序时需要其它软件硬件设置。VFW为AVI文件提供了丰富的处理函数和宏定义,AVI文件的特点在于它是典型的数据流文件,它由视频流、音频流、文本流组成。所以对AVI文件的处理主要是处理文件流。废话不多说了:本程序主要由底层的vc++ApI函数实现:今后该程序会转换成基于MFC的源代码开发。首先用新建Win32程序,建立一个空项目:编写一个摄像头录制系统应用程序,代码如下:在新建的一个头文件和.cpp文件取名为VCaper.h,VCaper.cpp。
3、把vfw.lib文件库导入到程序中。头文件写入一些宏定义资源:#defineSELCAPDRVDLG100#defineSELCAPDRVDLG_LSTBOX101#defineSELCAPDRVDLG_BUTTON103#defineEXIT104#defineHELP105#defineMINIMIZE106#defineMOVE107#defineCONNECT113#defineBUTTONSIZE15#definePHOTO114#defineRECORDVIDEO115#defineCOPY116#defineSOURCE117#d
4、efineFORMAT118#defineDISPLAY119VCaper.cpp文件实现代码如下:#include//windows编程代码#include//视频库#include#include//commondialogs#include"VCaper.h"//resourceheader#include//字符串函数//#include"oldeb.h"//字符串函数LRESULTWINAPIMainWndProc(HWND,UINT,WPAR
5、AM,LPARAM);//选择捕捉程序驱动程序LRESULTWINAPISelCapDrvProc(HWND,UINT,WPARAM,LPARAM);//列举捕捉驱动intEnumCapDrv();//在主窗口创建按钮VOIDAPIENTRYHandlePopupMenu(HWND,POINT);//右键弹出菜单句柄DWORDWINAPIvideoThreadProc(LPVOIDlParam);//视频程序线程/*******************全程变量********************/HANDLEghInstance;//应用程
6、序实例HWNDhwndMain;//主要窗口句柄HWNDhwndVideo;//视频捕捉窗口句柄HWNDhwndSelCapDrvDlg;//选择捕捉驱动对话句柄HWNDhwndSelCapDrvDlg_LBox;//选择捕捉驱动对话列举框句柄HWNDhwndExit;//退出按钮HWNDhwndMin;//最小化按钮HWNDhwndHelp;//帮助按钮HWNDhwndRecord;//录像按钮HWNDhwndPhoto;//快照按钮HWNDhwndSource;//视频源选项HWNDhwndFormat;//视频格式御览HWNDhwndCo
7、nnect;//数据块连接HANDLEhVideoThread;//停止录取视频线程HRGNhRegion1;//窗口修正区域CAPDRIVERCAPSCapDrvCaps;//驱动性能boolisRecordFileOpen=false;//录像开始标记boolisPhotoFileOpen=false;//照相开始标记charrecordFile[260];//保持录像标记charphotoFile[260];//保持照相标记boolisPicFileOpen=false;//flagsetifsnapshotfileisopencharp
8、ictureFile[260];//filetoholdsnapshotboolisRecording=false;//判断是否录像boolthrea
此文档下载收益归作者所有