Visual Basic 2010 Express Webcam Bildeingenschaften ändern

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ClonkAndre.

    Visual Basic 2010 Express Webcam Bildeingenschaften ändern

    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

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. videoHandle = CreateCaptureWindow(PictureBox_1.Handle)
    5. End Sub
    6. #Region "WebCam"
    7. Dim videoHandle As IntPtr
    8. Declare Auto Function SendMessage Lib "user32" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    9. 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
    10. Const EM_LINEFROMCHAR As Integer = &HC9
    11. Const EM_LINEINDEX As Integer = &HBB
    12. Const WS_CHILD As Integer = &H40000000
    13. Const WS_VISIBLE As Integer = &H10000000
    14. ' Für die optimale Bildqualität müsst ihr hier ein wenig rumspielen mit den zahlen...
    15. Const WM_USER As Short = &H400S
    16. Const WM_CAP_START As Short = &H400S
    17. Const WM_CAP_EDIT_COPY As Short = WM_CAP_START + 30
    18. Const WM_CAP_DRIVER_CONNECT As Short = WM_CAP_START + 10
    19. Const WM_CAP_SET_PREVIEWRATE As Short = WM_CAP_START + 52
    20. Const WM_CAP_SET_OVERLAY As Short = WM_CAP_START + 50
    21. Const WM_CAP_SET_PREVIEW As Short = WM_CAP_START + 50
    22. Const WM_CAP_DRIVER_DISCONNECT As Short = WM_CAP_START + 11
    23. 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
    24. Dim previewHandle As IntPtr
    25. previewHandle = capCreateCaptureWindow("Video", WS_CHILD + WS_VISIBLE, x, y, nWidth, nHeight, hWndParent, 1)
    26. SendMessage(previewHandle, WM_CAP_DRIVER_CONNECT, nCameraID, 0)
    27. SendMessage(previewHandle, WM_CAP_SET_PREVIEWRATE, 30, 0)
    28. SendMessage(previewHandle, WM_CAP_SET_OVERLAY, 1, 0)
    29. SendMessage(previewHandle, WM_CAP_SET_PREVIEW, 1, 0)
    30. Return previewHandle
    31. End Function
    32. Sub Disconnect(ByRef nCaptureHandle As IntPtr, Optional ByRef nCameraID As Integer = 0)
    33. SendMessage(nCaptureHandle, WM_CAP_DRIVER_DISCONNECT, nCameraID, 0)
    34. End Sub
    35. Sub Form1_FormClosing() Handles Me.FormClosing
    36. Disconnect(videoHandle)
    37. End Sub
    38. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    39. Disconnect(videoHandle)
    40. End Sub
    41. #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*
    Bilder
    • Kinect Tuner aufhname.png

      163,61 kB, 396×300, 200 mal angesehen
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @ClonkAndre Woher hast Du dieses Bild?
    Was sagt das Handbuch Deiner Webcam?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe dieses Bild kopiert nur als Beispiel.
    Ich antworte morgen wieder ich muss jetzt schlafen dann suche ich nach dem Handbuch.
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!