VC++实现视频捕捉(VFW).pdfVIP

  • 9
  • 0
  • 约3.72千字
  • 约 6页
  • 2021-03-11 发布于黑龙江
  • 举报
VC++ 6.0 实现视频捕捉(VFW ) 一、Video for Windows 简介 Video for Windows 是 WIN32 SDK 中多媒体编程 SDK 的视频开发工具。在微软的Visual C++ 中提供了 Video for Windows 的头文件 vfw.h 和库文件 vfw32.lib 。表 1 列出了 VFW 中视频捕捉编程常用的一些 VFW 函数和宏。 二、用 VC ++ 6.0 实现视频捕捉的编程实例 下面结合实例,说明对视频捕捉编程的具体实现方法。 1、用Visual C ++ 的AppWizard 生成一个基于对话框的应用程序,并在 StdAfx.h 中加入以下内容: #include vfw.h #pragma comment(lib,vfw32.lib) 2 、修改对话框资源,添加静态控制 IDC_VIDEO 和按钮“捕捉”、“停止”、“设置格式”、“设置图像源” 、 “设置压缩”、“单帧捕获”、“定帧”、“退出” 。 (其实最重要的是“设置格式” 、“设置图像源” 、“设置压缩” 、“单帧捕获” 、“退出” ,其它可以将其设置成 不可见,同时也可将其保留,以便将来扩展其功能时可用。) 3、在对话框的头文件中加入以下说明。 HWND m_hCapWnd;// 预示窗口 BOOL m_bInit;// 捕捉器初始化 CAPDRIVERCAPS m_CapDrvCap;// CAPDRIVERCAPS 结构,定义驱动器性能 CAPSTATUS m_CapStatus;// CAPSTATUS 结构,定义捕捉窗口当前状态 CAPTUREPARMS m_Parms;// CAPTURE PARMS 结构,定义捕捉参数 CString m_CapFileName;// 捕捉文件名称 4 、在对话框类的 OnInitDialog() 函数中加入捕捉器初始化以及连接驱动器。 m_bInit=FALSE; CWnd *pWnd=AfxGetMainWnd() -GetDlgItem(IDC_VIDEO); // 得到预示窗口指针 CRect rect; pWnd -GetWindowRect( &rect); // 得到窗口大小 m_hCapWnd=capCreateCaptureWindow((LPTSTR)TEXT( 视 频 捕 捉 测 试 程 序 ),WS_CHILD|WS_VISIBLE|WS_EX_CLIENTEDGE|WS_EX_DLGMODALFRAME,0,0,rect.Width(),rect.Wid th(),pWnd -GetSafeHwnd(),0); // 设置预示窗口 ASSERT(m_hCapWnd); if(capDriverConnect(m_hCapWnd,0)){// 连接第 0 号驱动器 m_bInit=TRUE; // 得到驱动器的性能 capDriverGetCaps(m_hCapWnd,sizeof(CAPDRIVERCAPS), &m_CapDrvCap); if(m_CapDrvCap.fCaptureInitialized){ // 如果初始化成功 capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态 capPreviewRate(m_hCapWnd,30); // 设置预示帧频 capPreview(m_hCapWnd,TRUE); // 设置预示方式 } else{// 初始化未成功 AfxMessageBox(视频捕捉卡初始化失败!); AfxGetMainWnd() -PostMessage (WM_CLOSE); } }

文档评论(0)

1亿VIP精品文档

相关文档