加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB 调用摄像头拍照,保存。

发布时间:2020-12-16 22:20:02 所属栏目:大数据 来源:网络整理
导读:摄像头调控 1 、首先创建一个标准 EXE 工程 2 、在窗体代码中加入如下必需的 API 及一个拍照的自定义函数 Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" _ Alias "capCreateCaptureWindowA" ( _ ByVal lpszWindowName As String,_ By

摄像头调控

1、首先创建一个标准EXE工程

2、在窗体代码中加入如下必需的API及一个拍照的自定义函数

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 Preview_Handle As Long

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 Function CapturePicture(nCaptureHandle As Long) As StdPicture

Clipboard.Clear

SendMessage nCaptureHandle,WM_CAP_EDIT_COPY,0

Set CapturePicture = Clipboard.GetData

End Function

3、在窗体上加入一个Picturebox和两个button,一个caption为拍照,一个为保存

4、给窗体的Load加如下代码

Preview_Handle = capCreateCaptureWindow("Video",WS_CHILD + WS_VISIBLE,2,220,156,Me.hwnd,1)

SendMessage Preview_Handle,WM_CAP_DRIVER_CONNECT,0

SendMessage Preview_Handle,WM_CAP_SET_PREVIEWRATE,1,WM_CAP_SET_PREVIEW,0

5、双击拍照按钮

Picture1.Picture = CapturePicture(Preview_Handle)

6、双击保存按钮

SavePicture Picture1.Picture,"c:a.bmp"

7、在窗体的unload事件中加入如下代码

SendMessage Preview_Handle,WM_CAP_DRIVER_DISCONNECT,0

8、运行程序,调试

全部程序清单:

Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" _

Alias "capCreateCaptureWindowA" ( _

ByVal lpszWindowName As String,_

lParam As Any) As Long

Private Function CapturePicture(nCaptureHandle As Long) As StdPicture

Clipboard.Clear

SendMessage nCaptureHandle,0

Set CapturePicture = Clipboard.GetData

End Function

Private Sub Command1_Click()

SavePicture Picture1.Picture,"c:a.bmp"

End Sub

Private Sub Command2_Click()

Picture1.Picture = CapturePicture(Preview_Handle)

End Sub

Private Sub Form_Load()

Preview_Handle = capCreateCaptureWindow("Video",0

End Sub

Private Sub Form_Unload(Cancel As Integer)

SendMessage Preview_Handle,0

End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读