تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كلاس تصوير الويبكام
#1
كاتب الموضوع : tibo




كلاس لتصوير الويبكام يارب يعجبكم


كود :
Public Class WebcamCapture
' Create constant using attend in function of DLL file.

Const WM_CAP As Short = &H400S
Const WM_CAP_DRIVER_CONNECT As Integer = WM_CAP + 10
Const WM_CAP_DRIVER_DISCONNECT As Integer = WM_CAP + 11
Const WM_CAP_EDIT_COPY As Integer = WM_CAP + 30
Const WM_CAP_SET_PREVIEW As Integer = WM_CAP + 50
Const WM_CAP_SET_PREVIEWRATE As Integer = WM_CAP + 52
Const WM_CAP_SET_SCALE As Integer = WM_CAP + 53
Const WS_CHILD As Integer = &H40000000
Const WS_VISIBLE As Integer = &H10000000
Const SWP_NOMOVE As Short = &H2S
Const SWP_NOSIZE As Short = 1
Const SWP_NOZORDER As Short = &H4S
Const HWND_BOTTOM As Short = 1

Dim iDevice As Integer = 0 ' Normal device ID
Dim hHwnd As Integer ' Handle value to preview window

' Declare function from AVI capture DLL.

Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, _
ByVal lParam As Object) As Integer

Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Integer, _
ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, _
ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer

Declare Function DestroyWindow Lib "user32" (ByVal hndw As Integer) As Boolean

Declare Function capCreateCaptureWindowA Lib "avicap32.dll" _
(ByVal lpszWindowName As String, ByVal dwStyle As Integer, _
ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, _
ByVal nHeight As Short, ByVal hWndParent As Integer, _
ByVal nID As Integer) As Integer

Declare Function capGetDriverDescriptionA Lib "avicap32.dll" (ByVal wDriver As Short, _
ByVal lpszName As String, ByVal cbName As Integer, ByVal lpszVer As String, _
ByVal cbVer As Integer) As Boolean

Public Function GetDevice() ' Connect to the device.
Dim strName As String = Space(100)
Dim strVer As String = Space(100)
Dim bReturn As Boolean
Dim x As Integer = 0

' Load name of all avialable devices into the lstDevices .

Do
' Get Driver name and version
bReturn = capGetDriverDescriptionA(x, strName, 100, strVer, 100)
' If there was a device add device name to the list
Return strName.Trim("")
x += 1
Loop Until bReturn = False
End Function

' To display the output from a video capture device, you need to create a capture window.

Public Sub Start(ByVal PicBox As PictureBox)
Dim iHeight As Integer = PicBox.Height
Dim iWidth As Integer = PicBox.Width

' Open Preview window in picturebox .
' Create a child window with capCreateCaptureWindowA so you can display it in a picturebox.

hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, _
480, PicBox.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, PicBox.Width, PicBox.Height, _
SWP_NOMOVE Or SWP_NOZORDER)
Else
' Error connecting to device close window
DestroyWindow(hHwnd)
End If
End Sub

' Use SendMessage to copy the data to the clipboard Then transfer the image to the picture box.

Public Function save()
Dim data As IDataObject
Dim bmap As Image = Nothing
' Copy image to clipboard
SendMessage(hHwnd, WM_CAP_EDIT_COPY, 0, 0)

' Get image from clipboard and convert it to a bitmap
data = Clipboard.GetDataObject()
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
bmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Image)
End If
Return bmap
End Function

' Finally, to close the preview window, disconnect from the device
'and destroy the preview window.

Public Sub Quit()
' Disconnect from device
SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0)

' close window
DestroyWindow(hHwnd)
End Sub

End Class


الملفات المرفقة
.rar   Webcam Capture.rar (الحجم : 124.64 ك ب / التحميلات : 177)
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كلاس Data Access Layer RaggiTech 0 2,060 17-10-12, 09:01 PM
آخر رد: RaggiTech
  كلاس لعدة تعاملات مع الداتا بيز(فتح و غلق الأتصال..سيليكت...و انسيرت ...) RaggiTech 0 2,019 09-10-12, 05:50 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم