VFP调用API来控件USB摄像头,实现拍照或录像。
来源:互联网 发布:centos不能输入中文 编辑:程序博客网 时间:2024/06/05 20:21
*--前提:VFP7.0以上;Windows 2K及以上
*--定义:一般放到主程序或表单(集)的Load事件中
Public WM_CAP_DRIVER_DISCONNECT
Public hwndc,WM_CAP_SAVEDIB,WM_CAP_FILE_SET_CAPTURE_FILEA,WM_CAP_SEQUENCE,WM_CAP_STOP
Declare Integer capCreateCaptureWindowA In "AVICAP32.DLL" String lpszWindowName ,Integer dwStyle ,;
Integer x, Integer Y, Integer nWidth ,Integer nHeight,Integer ParentWin,Integer nId
Declare Integer SendMessage In "user32" Integer HWnd, Integer wmsg,Integer wpar1, Integer wpar2
Declare Integer SendMessage In "user32" As SendMessageA Integer HWnd, Integer wmsg,Integer wpar1, String wpar2
*--显示:可以放到按钮或表单(集)的Init事件中
WM_USER = 1024
WM_CAP_START = WM_USER
WM_CAP_STOP = WM_CAP_START + 68
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11
WM_CAP_SAVEDIB = WM_CAP_START + 25
WM_CAP_GRAB_FRAME = WM_CAP_START + 60
WM_CAP_SEQUENCE = WM_CAP_START + 62
WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20
WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63
WM_CAP_SET_OVERLAY =WM_CAP_START+ 51
WM_CAP_SET_PREVIEW =WM_CAP_START+ 50
WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6
WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2
WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3
WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5
WM_CAP_SET_SCALE=WM_CAP_START+ 53
WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52
*第3、4个参数是定义显示位置,第5、6个参数是定义显示大小。
hWndC = capCreateCaptureWindowA('My Own Capture Window',1342177280,0,0,320,240,Thisform.HWnd ,0)
If hWndC <> 0
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0)
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0)
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0)
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0)
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0)
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0)
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0)
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0)
* THISFORM.ACTIVATE
Endif
*--关闭显示:
SendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT, 0, 0)
hWndC=0
*--保存图像:
*--无法控制生成的文件尺寸,因为是由摄像头本身默认的,不过可用Image控件显示时进行等比缩小的。
ss=Getfile("bmp;Jpg")
If !Empty(ss)
SendMessageA(hWndC,WM_CAP_SAVEDIB,0,SS)
Endif
*--录像:
ss = Getfile("avi")
If !Empty(ss)
SendMessageA(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0,ss)
SendMessageA(hWndC, WM_CAP_SEQUENCE, 0, 0)
This.Enabled=.F.
Thisform.MousePointer= 0
Thisform.停止录像按钮.Enabled=.T.
Endif
*--停止录像:
SendMessage(hWndC, WM_CAP_STOP, 0, 0)
Thisform.开始录像按钮.Enabled=.T.
This.Enabled=.F.
- VFP调用API来控件USB摄像头,实现拍照或录像。
- Windows Mobile 调用摄像头拍照录像
- 直接调用硬件摄像头录像和拍照
- VB调用摄像头录像,拍照,保存
- Unity如何调用安卓手机摄像头实现拍照和录像
- 基于opencv调用USB摄像头拍照
- html5调用摄像头实现拍照
- html5调用摄像头实现拍照
- C#实现摄像头调用、拍照
- html5调用摄像头实现拍照
- C#操作Aforge摄像头 实现拍照、录像功能
- VB实现USB摄像头视频图像的监控、截图、录像
- 在VFP中调用API实现拨号上网
- Vfp 调用 API 实现 RunAs 功能
- Android 实现拍照、录像
- jmf实现调用笔记本摄像头并拍照
- html5调用摄像头实现拍照(未测试)
- 手机端file限制只能选择图片、视频、音频,直接打开摄像头拍照或录像
- PowerDesigner使用收藏
- Linux C 函数参考之常用数学函数篇
- 关于如何在.net程序中动态改变界面文化的一些链接
- ▣什么是数据冗余▣
- using namespace std 的用法
- VFP调用API来控件USB摄像头,实现拍照或录像。
- 北京的桶装水问题
- SetProcessWorkingSetSize
- 常用C库函数与WIN32函数比较一览表
- MAYA学习——基础建模结束
- WebService的介绍
- 图片边框效果(待续)
- Struts2表单校验
- All Commands of PowerShell 1.0