Вы находитесь на странице: 1из 3

Option Explicit On

Option Compare Binary


Public Class cameraform
Private Sub LoadDeviceList()
On Error Resume Next
Dim strName As String = Space(100)
Dim strVer As String = Space(100)
Dim bReturn As Boolean
Dim x As Integer = 0
Do
bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100)
If bReturn Then lst1.Items.Add(strName.Trim)
x += 1
Application.DoEvents()
Loop Until bReturn = False

End Sub

'Open View
Private Sub OpenPreviewWindow()
On Error Resume Next

Dim iHeight As Integer = pview.Height


Dim iWidth As Integer = pview.Width

'
' Open Preview window in picturebox
'
hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0,
0, 640, _
480, pview.Handle.ToInt32, 0)

'
' Connect to device
'
If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then
'
'Set the preview scale
'
SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0)

'
'Set the preview rate in milliseconds
'
SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0)

'
'Start previewing the image from the camera
'
SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0)

'
' Resize window to fit in picturebox
'
SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, pview.Width, pview.Height,
_
SWP_NOMOVE Or SWP_NOZORDER)
btncapture.Enabled = False
BtnSave.Enabled = True
btnstop.Enabled = True
Else
'
' Error connecting to device close window
'
DestroyWindow(hHwnd)

btncapture.Enabled = True
BtnSave.Enabled = False
btnstop.Enabled = False

pview.Image = Nothing
pview.SizeMode = PictureBoxSizeMode.StretchImage
pview.BackColor = Color.Black
pview.BackgroundImage = Nothing
pview.BackgroundImageLayout = ImageLayout.None
pview.Refresh()

End If
End Sub

Private Sub ClosePreviewWindow()


On Error Resume Next
'
' Disconnect from device
'
SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0)

'
' close window
'

DestroyWindow(hHwnd)

btncapture.Enabled = True
BtnSave.Enabled = False
btnstop.Enabled = False

pview.Image = Nothing
pview.SizeMode = PictureBoxSizeMode.StretchImage
pview.BackColor = Color.Black
pview.BackgroundImage = Nothing
pview.BackgroundImageLayout = ImageLayout.None
pview.Refresh()
End Sub

Private Sub ClearAllObject()


On Error Resume Next
lst1.Items.Clear()
lst1.Refresh()
pView.BackColor = Color.Black
pView.BackgroundImageLayout = ImageLayout.Stretch
pView.Image = Nothing
pView.SizeMode = PictureBoxSizeMode.StretchImage
pView.Refresh()

btncapture.Enabled = True
BtnSave.Enabled = False
btnstop.Enabled = False
'Load Device List
Call LoadDeviceList()
End Sub
Private Sub cameraform_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
On Error Resume Next
'Load Object Value TO Default
ClearAllObject()
End Sub
Private Sub btncapture_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btncapture.Click
On Error Resume Next
iDevice = lst1.SelectedIndex
OpenPreviewWindow()
End Sub

Private Sub btnstop_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnstop.Click
On Error Resume Next
'Stop Device Capture
ClosePreviewWindow()
End Sub

Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles BtnSave.Click
On Error Resume Next
Dim data As IDataObject
Dim bmap As Image
SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)
data = Clipboard.GetDataObject()
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image)
pview.Image = bmap
applicationform.pictureid.Image = bmap
applicationform.pictureid.SizeMode = PictureBoxSizeMode.Zoom
ClosePreviewWindow()
End If
data = Nothing
End Sub

Private Sub Btnexit_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Btnexit.Click
Me.Close()
Exit Sub
End Sub

End Class

Вам также может понравиться