VB摄像头编程

在网上找了很久,终于有了一些眉目,算是可以入门了。以下内容和代码参考http://blog.csdn.net/suntaoznz/archive/2005/08/06/447067.aspx
在VB中捕获摄像头数据可以应用VFW(Microsoft Video for Windows )提供的函数:

Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" _
  Alias "capCreateCaptureWindowA" ( _
  ByVal lpszWindowName As String, _
  ByVal dwStyle As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long, _
  ByVal hWndParent As Long, _
  ByVal nID As Long) As Long

Private Const WS_CHILD = &H40000000
Private Const WS_VISIBLE = &H10000000
Private Const WM_USER = &H400
Private Const WM_CAP_START = &H400
Private Const WM_CAP_EDIT_COPY = (WM_CAP_START + 30)
Private Const WM_CAP_DRIVER_CONNECT = (WM_CAP_START + 10)
Private Const WM_CAP_SET_PREVIEWRATE = (WM_CAP_START + 52)
Private Const WM_CAP_SET_OVERLAY = (WM_CAP_START + 51)
Private Const WM_CAP_SET_PREVIEW = (WM_CAP_START + 50)
Private Const WM_CAP_DRIVER_DISCONNECT = (WM_CAP_START + 11)

Private Declare Function SendMessage Lib "user32" _
  Alias "SendMessageA" ( _
  ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long

Private Preview_Handle As Long

Private Sub Form_Load()
    '建立捕获窗口
    Preview_Handle = capCreateCaptureWindow("Video", WS_CHILD + WS_VISIBLE, 0, 0, 320, 240, Me.hwnd, 1)
    '建立捕获窗口到捕获设备的连接
    SendMessage Preview_Handle, WM_CAP_DRIVER_CONNECT, 0, 0
    '设置捕获的帧频率为30毫秒一帧
    SendMessage Preview_Handle, WM_CAP_SET_PREVIEWRATE, 30, 0
    '用预览模式在捕获窗口开始预览图像
    SendMessage Preview_Handle, WM_CAP_SET_PREVIEW, 1, 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
    '断开到捕获设备的连接
    SendMessage Preview_Handle, WM_CAP_DRIVER_DISCONNECT, 0, 0
End Sub

程序中首先用capCreateCaptureWindow函数创建一个捕获窗口,之后,对捕获的所有操作都可以通过对这个捕获窗口发送消息进行控制。

开始捕获数据的步骤如下:
1.在开始捕获数据之前必须先发送WM_CAP_DRIVER_CONNECT消息让捕获窗口与指定捕获设备相连接。lParam参数0代表系统内安装的设备索引,索引从0开始。
2.发送WM_CAP_SET_PREVIEWRATE消息设置捕获的帧频率,wParam参数为多少秒捕获一帧。
3.发送WM_CAP_SET_PREVIEW消息以预览模式在捕获窗口开始预览图像 。
4.程序退出之前发送WM_CAP_DRIVER_DISCONNECT消息让捕获窗口与捕获设备断开连接。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值