VB 调用摄像头拍照,保存。
来源:互联网 发布:有关大数据的毕业设计 编辑:程序博客网 时间:2024/05/21 19:46
摄像头调控
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, 0
Set CapturePicture = Clipboard.GetData
End Function
3、在窗体上加入一个Picturebox和两个button,一个caption为拍照,一个为保存
4、给窗体的Load加如下代码
Preview_Handle = capCreateCaptureWindow("Video", WS_CHILD + WS_VISIBLE, 2, 2, 220, 156, Me.hwnd, 1)
SendMessage Preview_Handle, WM_CAP_DRIVER_CONNECT, 0, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEWRATE, 1, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEW, 1, 0
5、双击拍照按钮
Picture1.Picture = CapturePicture(Preview_Handle)
6、双击保存按钮
SavePicture Picture1.Picture, "c:\a.bmp"
7、在窗体的unload事件中加入如下代码
SendMessage Preview_Handle, WM_CAP_DRIVER_DISCONNECT, 0, 0
8、运行程序,调试
全部程序清单:
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, 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", WS_CHILD + WS_VISIBLE, 2, 2, 220, 156, Me.hwnd, 1)
SendMessage Preview_Handle, WM_CAP_DRIVER_CONNECT, 0, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEWRATE, 1, 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
- VB 调用摄像头拍照,保存。
- VB调用摄像头录像,拍照,保存
- opencv调用摄像头拍照保存
- 调用Matlab摄像头函数,拍照并保存
- java 如何调用摄像头并拍照保存照片
- Android应用中调用手机摄像头拍照并保存
- matlab调用笔记本摄像头拍照并连续保存
- Android 调用系统摄像头拍照保存并且更新到图库
- html5调用摄像头实现拍照并本地保存
- 安卓调用系统摄像头拍照并保存到本地
- Android笔记:调用摄像头拍照保存至指定目录
- unity调用摄像头进行拍照和保存照片
- iOS_调用摄像头拍照
- android 调用摄像头拍照
- IOS 调用摄像头拍照
- Android 调用摄像头拍照
- 调用摄像头拍照
- 调用摄像头拍照
- [游泳] Sun Yang 1500 Swimming Stroke Analysis London 2012
- 获取真实的IP地址
- tolua中的每个文件
- 在路上
- 展望!
- VB 调用摄像头拍照,保存。
- Typical Java interview questions
- 转到cloud sever组
- Linux 系统内核空间与用户空间通信的实现与分析
- CFileDialog
- Extjs4---Uncaught TypeError: Cannot call method 'hasOwnProperty' of undefined
- BNU- 12873 - Generations 线段树
- [cocos2d-x]Win32移植android
- android-整体UI设计-(滑动导航栏+滚动页面)