vb.net怎么调用摄像头拍照
来源:网络收集 点击: 时间:2024-02-17ImportsSystemImportsSystem.Runtime.InteropServicesImportsSystem.DrawingImportsSystem.Drawing.ImagingClassCameraPrivateConstWM_CAP_START=WM_USERPrivateConstWM_CAP_STOP=WM_CAP_START+68PrivateConstWM_CAP_DRIVER_CONNECT=WM_CAP_START+10PrivateConstWM_CAP_DRIVER_DISCONNECT=WM_CAP_START+11PrivateConstWM_CAP_SAVEDIB=WM_CAP_START+25PrivateConstWM_CAP_GRAB_FRAME=WM_CAP_START+60PrivateConstWM_CAP_SEQUENCE=WM_CAP_START+62PrivateConstWM_CAP_FILE_SET_CAPTURE_FILEA=WM_CAP_START+20PrivateConstWM_CAP_SEQUENCE_NOFILE=WM_CAP_START+63PrivateConstWM_CAP_SET_OVERLAY=WM_CAP_START+51PrivateConstWM_CAP_SET_PREVIEW=WM_CAP_START+50PrivateConstWM_CAP_SET_CALLBACK_VIDEOSTREAM=WM_CAP_START+6PrivateConstWM_CAP_SET_CALLBACK_ERROR=WM_CAP_START+2PrivateConstWM_CAP_SET_CALLBACK_STATUSA=WM_CAP_START+3PrivateConstWM_CAP_SET_CALLBACK_FRAME=WM_CAP_START+5PrivateConstWM_CAP_SET_SCALE=WM_CAP_START+53PrivateConstWM_CAP_SET_PREVIEWRATE=WM_CAP_START+52SubNew(ByValIAsPictureBox)o=IEndSub


SendMessage(M_Handle,WM_CAP_EDIT_COPY,0,0)ReturnClipboard.GetImageEndFunctionFunctionCreateCaptureWindow(ByValhWndParentAsPictureBox,ByValxAsInteger,ByValyAsInteger,ByValnWidthAsInteger,ByValnHeightAsInteger,ByValnCameraIDAsInteger)AsIntegerDimPreview_HandleAsIntegerPreview_Handle=capCreateCaptureWindow(Video,_WS_CHILD+WS_VISIBLE,x,y,_hWndParent.Width,hWndParent.Height,hWndParent.Handle,0)DimBOOLAsBooleanBOOL=SendMessage(Preview_Handle,WM_CAP_DRIVER_CONNECT,nCameraID,0)ncameraid(视频只有一个为0,多个以此类推)If(BOOL=False)ThenMsgBox(没有找到视频设备!)EndIfSendMessage(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)M_Handle=Preview_HandleReturnPreview_HandleEndFunction

DimblnRunningAsBoolean=FalsePublicSubDisconnect()SendMessage(M_Handle,WM_CAP_DRIVER_DISCONNECT,0,0)EndSubDimblnRecordingAsBoolean=False录像PublicSubKineScope(ByValpathAsString)IfblnRecordingThenReturnElseblnRecording=TrueEndIfpath:要保存avi文件的路径DimhBmpAsIntPtr=Marshal.StringToHGlobalAnsi(path)SendMessage(M_Handle,WM_CAP_FILE_SET_CAPTURE_FILEA,0,hBmp.ToInt64())SendMessage(M_Handle,WM_CAP_SEQUENCE,0,0)EndSubPublicSubStopKinescope()IfblnRecordingThenSendMessage(M_Handle,WM_CAP_STOP,0,0)EndIfblnRecording=FalseEndSubEndClass上面是camera.vb接口类

下面是实现formPublicClassCamoraFormDimcamoraAsNewCamera(PictureBox1)PrivateSubCamoraForm_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadEndSubPrivateSubCommendStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCommendStart.Clickcamora.CreateCaptureWindow(PictureBox1,0,0,PictureBox1.Width,PictureBox1.Height,0)EndSubPrivateSubCommendStop_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCommendStop.Clickcamora.StopKinescope()camora.Disconnect()EndSub

注意大小写
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_59510.html