vb.net怎么调用摄像头拍照

 时间:2026-02-12 10:01:38

1、Imports SystemImports System.Runtime.InteropServicesImports System.DrawingImports System.Drawing.ImagingClass Camera    Private Const WM_CAP_START = WM_USER    Private Const WM_CAP_STOP = WM_CAP_START + 68    Private Const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10    Private Const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11    Private Const WM_CAP_SAVEDIB = WM_CAP_START + 25    Private Const WM_CAP_GRAB_FRAME = WM_CAP_START + 60    Private Const WM_CAP_SEQUENCE = WM_CAP_START + 62    Private Const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20    Private Const WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63    Private Const WM_CAP_SET_OVERLAY = WM_CAP_START + 51    Private Const WM_CAP_SET_PREVIEW = WM_CAP_START + 50    Private Const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6    Private Const WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2    Private Const WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3    Private Const WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5    Private Const WM_CAP_SET_SCALE = WM_CAP_START + 53    Private Const WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52    Sub New(ByVal I As PictureBox)        o = I    End Sub    

vb.net怎么调用摄像头拍照

vb.net怎么调用摄像头拍照

2、        SendMessage(M_Handle, WM_CAP_EDIT_COPY, 0, 0)        Return Clipboard.GetImage    End Function    Function CreateCaptureWindow(ByVal hWndParent As PictureBox,         ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer,         ByVal nCameraID As Integer) As Integer        Dim Preview_Handle As Integer        Preview_Handle = capCreateCaptureWindow("Video", _        WS_CHILD + WS_VISIBLE, x, y, _        hWndParent.Width, hWndParent.Height, hWndParent.Handle, 0)        Dim BOOL As Boolean        BOOL = SendMessage(Preview_Handle, WM_CAP_DRIVER_CONNECT, nCameraID, 0) 'ncameraid(视频只有一个为0,多个以此类推)        If (BOOL = False) Then            MsgBox("没有找到视频设备!")        End If        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)        M_Handle = Preview_Handle        Return Preview_Handle    End Function   

vb.net怎么调用摄像头拍照

3、 Dim blnRunning As Boolean = False    Public Sub Disconnect()        SendMessage(M_Handle, WM_CAP_DRIVER_DISCONNECT, 0, 0)    End Sub    Dim blnRecording As Boolean = False    '录像     Public Sub KineScope(ByVal path As String)        If blnRecording Then            Return        Else            blnRecording = True        End If        'path:要保存avi文件的路径         Dim hBmp As IntPtr = Marshal.StringToHGlobalAnsi(path)        SendMessage(M_Handle, WM_CAP_FILE_SET_CAPTURE_FILEA, 0, hBmp.ToInt64())        SendMessage(M_Handle, WM_CAP_SEQUENCE, 0, 0)    End Sub    Public Sub StopKinescope()        If blnRecording Then            SendMessage(M_Handle, WM_CAP_STOP, 0, 0)        End If        blnRecording = False    End SubEnd Class上面是camera.vb接口类

vb.net怎么调用摄像头拍照

4、下面是实现formPublic Class CamoraForm    Dim camora As New Camera(PictureBox1)    Private Sub CamoraForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load            End Sub    Private Sub CommendStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommendStart.Click        camora.CreateCaptureWindow(PictureBox1, 0, 0, PictureBox1.Width, PictureBox1.Height, 0)    End Sub    Private Sub CommendStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CommendStop.Click        camora.StopKinescope()        camora.Disconnect()    End Sub    

vb.net怎么调用摄像头拍照

  • C#远程桌面管理的详细图文实现方法
  • 交流接触器和直流接触器的主要区别是什么
  • 华为企业路由器怎么用命令行配置DHCP服务
  • 如何取消设置数字格式-数字千位分隔符?二
  • wireshark使用教程入门
  • 热门搜索
    如何海淘 淘宝主图视频怎么做 哪里回收手表 手机如何root 脸上皱纹怎么办 美味英文怎么说 路由器怎么安装 如何致富 怎么皈依佛门 路由器怎么连接