Hallo Liebe Leute,
Ich komme direkt zum Problem, da ich wenn ich erlig bin keine Ahnung von Schnittstellen Prog. habe.
Habe im Netz einen Code gefunden mit dem ich via Webcam, Bilder machen kann und speichere.
Nun zu meiner Frage, wer ist so nett und kann mir sagen wie ich das Livebild so groß bekomme wie meine Pic Box???
Eine direkte Lösung wäre super, da ich wie gesagt absolut keine Ahnung habe.
Meine Webcam ist eine Microsoft mit 1080p.
*Topic verschoben*
Ich komme direkt zum Problem, da ich wenn ich erlig bin keine Ahnung von Schnittstellen Prog. habe.
Habe im Netz einen Code gefunden mit dem ich via Webcam, Bilder machen kann und speichere.
Nun zu meiner Frage, wer ist so nett und kann mir sagen wie ich das Livebild so groß bekomme wie meine Pic Box???
Eine direkte Lösung wäre super, da ich wie gesagt absolut keine Ahnung habe.
Meine Webcam ist eine Microsoft mit 1080p.
VB.NET-Quellcode
- Public Class Form1
- Dim Picture As System.Drawing.Image
- Public videoHandle As IntPtr
- Private Declare Auto Function SendMessage Lib "user32" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
- Const EM_LINEFROMCHAR As Integer = &HC9
- Const EM_LINEINDEX As Integer = &HBB
- Private Declare Auto Function capCreateCaptureWindow 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 Integer, ByVal hWndParent As IntPtr, ByVal nID As Integer) As IntPtr
- Private Const WS_CHILD As Integer = &H40000000
- Private Const WS_VISIBLE As Integer = &H10000000
- Private Const WM_USER As Short = &H400S
- Private Const WM_CAP_START As Short = &H400S
- Private Const WM_CAP_EDIT_COPY As Integer = (WM_CAP_START + 30)
- Private Const WM_CAP_DRIVER_CONNECT As Integer = (WM_CAP_START + 10)
- Private Const WM_CAP_SET_PREVIEWRATE As Integer = (WM_CAP_START + 52)
- Private Const WM_CAP_SET_OVERLAY As Integer = (WM_CAP_START + 51)
- Private Const WM_CAP_SET_PREVIEW As Integer = (WM_CAP_START + 50)
- Private Const WM_CAP_DRIVER_DISCONNECT As Integer = (WM_CAP_START + 11)
- Public Function CreateCaptureWindow(ByRef hWndParent As IntPtr, Optional ByRef x As Integer = 0, Optional ByRef y As Integer = 0, Optional ByRef nWidth As Integer = 1920, Optional ByRef nHeight As Integer = 1080, Optional ByRef nCameraID As Integer = 0) As IntPtr
- Dim previewHandle As IntPtr
- previewHandle = capCreateCaptureWindow("Video", WS_CHILD + WS_VISIBLE, x, y, nWidth, nHeight, hWndParent, 1)
- SendMessage(previewHandle, WM_CAP_DRIVER_CONNECT, nCameraID, 0)
- SendMessage(previewHandle, WM_CAP_SET_PREVIEWRATE, 30, 0)
- SendMessage(previewHandle, WM_CAP_SET_OVERLAY, 1, 0)
- SendMessage(previewHandle, WM_CAP_SET_PREVIEW, 1, 0)
- Return previewHandle
- End Function
- Public Function CapturePicture(ByRef nCaptureHandle As IntPtr) As System.Drawing.Image
- My.Computer.Clipboard.Clear()
- SendMessage(nCaptureHandle, WM_CAP_EDIT_COPY, 0, 0)
- Return My.Computer.Clipboard.GetImage
- End Function
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- videoHandle = Me.CreateCaptureWindow(Me.PictureBox1.Handle)
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Picture = CapturePicture(videoHandle)
- Picture.Save(My.Computer.FileSystem.SpecialDirectories.Desktop + "\" + "pic.bmp")
- End Sub
- End Class
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()