Hallo liebe Comunity!
Ich habe mir gestern ein ganz kleines Programm gebaut (mit ganz klein
meine ich: PictureBox & Button) womit man auf der angeschlossenden
Webcam zugreifen kann.
Funktioniert soweit alles ganz gut nun möchte ich aber die
Bildeigenschaften so ändern dass das Bild nicht mehr in vollen Farben
angezeigt wird, sondern das es so wie im Bild angezeigt wird. (Bild im
Anhang)
Hier ist der momentaner Code:
(Code von @lokue)
Spoiler anzeigen
Vielleicht könnt ihr mich auch beraten ob das ein guter Code zum anzeigen eines Webcam Bildes ist.
Aber naja wie kann ich die Webcam so einstellen das es so wie im Bild aussieht?
Danke im vorraus!
*Topic verschoben*
Ich habe mir gestern ein ganz kleines Programm gebaut (mit ganz klein
meine ich: PictureBox & Button) womit man auf der angeschlossenden
Webcam zugreifen kann.
Funktioniert soweit alles ganz gut nun möchte ich aber die
Bildeigenschaften so ändern dass das Bild nicht mehr in vollen Farben
angezeigt wird, sondern das es so wie im Bild angezeigt wird. (Bild im
Anhang)
Hier ist der momentaner Code:
(Code von @lokue)
VB.NET-Quellcode
- Imports System.IO
- Public Class Form1
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- videoHandle = CreateCaptureWindow(PictureBox_1.Handle)
- End Sub
- #Region "WebCam"
- Dim videoHandle As IntPtr
- Declare Auto Function SendMessage Lib "user32" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
- Declare Auto Function capCreateCaptureWindow Lib "avicap32.dll" (ByVal lpszWindowName As String, ByVal dwStyle As Integer, ByVal x As Short, ByVal y As Integer, ByVal nWidth As Short, ByVal nHeight As Short, ByVal hWndParent As IntPtr, ByVal nID As Byte) As IntPtr
- Const EM_LINEFROMCHAR As Integer = &HC9
- Const EM_LINEINDEX As Integer = &HBB
- Const WS_CHILD As Integer = &H40000000
- Const WS_VISIBLE As Integer = &H10000000
- ' Für die optimale Bildqualität müsst ihr hier ein wenig rumspielen mit den zahlen...
- Const WM_USER As Short = &H400S
- Const WM_CAP_START As Short = &H400S
- Const WM_CAP_EDIT_COPY As Short = WM_CAP_START + 30
- Const WM_CAP_DRIVER_CONNECT As Short = WM_CAP_START + 10
- Const WM_CAP_SET_PREVIEWRATE As Short = WM_CAP_START + 52
- Const WM_CAP_SET_OVERLAY As Short = WM_CAP_START + 50
- Const WM_CAP_SET_PREVIEW As Short = WM_CAP_START + 50
- Const WM_CAP_DRIVER_DISCONNECT As Short = WM_CAP_START + 11
- Function CreateCaptureWindow(ByRef hWndParent As IntPtr, Optional ByRef x As Short = 0, Optional ByRef y As Short = 0, Optional ByRef nWidth As Short = 640, Optional ByRef nHeight As Short = 420, 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
- Sub Disconnect(ByRef nCaptureHandle As IntPtr, Optional ByRef nCameraID As Integer = 0)
- SendMessage(nCaptureHandle, WM_CAP_DRIVER_DISCONNECT, nCameraID, 0)
- End Sub
- Sub Form1_FormClosing() Handles Me.FormClosing
- Disconnect(videoHandle)
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Disconnect(videoHandle)
- End Sub
- #End Region
Vielleicht könnt ihr mich auch beraten ob das ein guter Code zum anzeigen eines Webcam Bildes ist.
Aber naja wie kann ich die Webcam so einstellen das es so wie im Bild aussieht?
Danke im vorraus!
*Topic verschoben*
Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button
Für VB.NET Entwickler: Option Strict On nicht vergessen!
Für VB.NET Entwickler: Option Strict On nicht vergessen!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()