注册 登录
编程论坛 VB6论坛

摄像头取像的问题?

lht99101 发布于 2006-11-24 18:39, 1336 次点击
一个问题要请教:我现在用VB6.0在开发一个应用程序,需要用USB摄像头取像,保存在数据库中,我想实现能在摄像头捕捉到的画面上可以画一个矩形的透明虚线框,如果鼠标在矩形框中按下鼠标左键时候,能拖动这个虚线的矩形框来移动它。双击的时候就可以截取虚线框选中的照片了(即照片上的部分图片截取)。请赐教!!跪求!!!!!
5 回复
#2
simpson2006-11-24 19:03
关注
好想法
#3
pljczjc2011-10-16 22:24
我也想要这个功能
#4
draug2012-07-29 22:20
关注
#5
wenshuai2012-10-08 13:19
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


Public Function CreateCaptureWindow( _
hWndParent As Long, _
Optional x As Long = 0, _
Optional y As Long = 0, _
Optional nWidth As Long = 750, _
Optional nHeight As Long = 620, _
Optional nCameraID As Long = 0) As Long

Preview_Handle = capCreateCaptureWindow("Video", _
WS_CHILD + WS_VISIBLE, x, y, _
nWidth, nHeight, hWndParent, 1)

SendMessage Preview_Handle, WM_CAP_DRIVER_CONNECT, nCameraID, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEWRATE, 30, 0
SendMessage Preview_Handle, WM_CAP_SET_OVERLAY, 1, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEW, 1, 0

CreateCaptureWindow = Preview_Handle
End Function


Public Function CapturePicture(nCaptureHandle As Long) As StdPicture
Clipboard.Clear
SendMessage nCaptureHandle, WM_CAP_EDIT_COPY, 0, 0
Set CapturePicture = Clipboard.GetData
End Function


Public Sub Disconnect(nCaptureHandle As Long, _
Optional nCameraID = 0)
SendMessage nCaptureHandle, WM_CAP_DRIVER_DISCONNECT, _
nCameraID, 0
End Sub

Public Sub delay(delaytime As Long)   '变量名称不能有空格
For i = 1 To delaytime
    DoEvents
Next
End Sub


1