PictureBox WebCam Capture

Heres your chance to share your own tutorials with the community. Just post them on here. If your lucky they may even be posted on the main site.
5 posts Page 1 of 1
Contributors
User avatar
3aaBrSbeel
Top Poster
Top Poster
Posts: 139
Joined: Fri Jun 01, 2012 9:34 am

PictureBox WebCam Capture
3aaBrSbeel
Hey, I'm 3aaBrSbeel. This topic will lead us on making a PictureBox WebCam Capture. Which is a very Handy Tool. Easy to make and quite usefull.

What you need is:
PictureBox
Listbox
3 Buttons
& a SaveFileDialog


Lets get crackin'

Name them as following:
Button1 - btnStart
Button2 - btnStop
Button3 - btnSave
PictureBox - picCapture
Listbox - lstDevices
SaveFileDialog - sfdImage


PictureBox - Set it to "Stretch Image"
Form - Set it to "AutoScroll - True"
SaveFileDialog - Filter " PNG File (*.png)|*.png "



It should look like this..
Untitled.png
Let's Start Coding!

Type the Following. Below the Public Class Form1
Code: Select all
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
    Dim hHwnd As Integer
    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

    Private Sub LoadDeviceList()
        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 lstDevices.Items.Add(strName.Trim)
            x += 1
        Loop Until bReturn = False
    End Sub

    Private Sub OpenPreviewWindow()
        Dim iHeight As Integer = picCapture.Height
        Dim iWidth As Integer = picCapture.Width
        hHwnd = capCreateCaptureWindowA(iDevice, WS_VISIBLE Or WS_CHILD, 0, 0, 640, 480, picCapture.Handle.ToInt32, 0)
        If SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) Then
            SendMessage(hHwnd, WM_CAP_SET_SCALE, True, 0)
            SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0)
            SendMessage(hHwnd, WM_CAP_SET_PREVIEW, True, 0)
            SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, picCapture.Width, picCapture.Height, SWP_NOMOVE Or SWP_NOZORDER)
            btnSave.Enabled = True
            btnStop.Enabled = True
            btnStart.Enabled = False
        Else
            DestroyWindow(hHwnd)
            btnSave.Enabled = False
        End If
    End Sub
For Button3 (Save Button) which is "btnSave" Codes:
Code: Select all
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)
            picCapture.Image = bmap
            ClosePreviewWindow()
            btnSave.Enabled = False
            btnStop.Enabled = False
            btnStart.Enabled = True
            If sfdImage.ShowDialog = DialogResult.OK Then
                bmap.Save(sfdImage.FileName, Imaging.ImageFormat.Bmp)
            End If
        End If
    End Sub

    Private Sub ClosePreviewWindow()
        SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0)
        DestroyWindow(hHwnd)
    End Sub
For Form1_Load Codes:
Code: Select all
LoadDeviceList()
For Button1 (Start button) which is "btnStart" Codes:
Code: Select all
OpenPreviewWindow()
        btnStart.Enabled = False
        btnStop.Enabled = True
    End Sub
And the Last is Button2 (Stop button) which is "btnStop" Codes:
Code: Select all
ClosePreviewWindow()
        btnStart.Enabled = True
        btnStop.Enabled = False
    End Sub
End Class
This ends it. Have fun taking pictures! P.E.A.C.E.!.

Credits to Lobster Productions

http://lobsterproductions.weebly.com
You do not have the required permissions to view the files attached to this post.
Last edited by 3aaBrSbeel on Mon Jun 18, 2012 1:02 pm, edited 1 time in total.
Code'n'Stuff Signature Of 3aaBrSbeel
®║▌│█│║▌║││█║▌║▌║▌
✔ Verified Official Code'n'Stuff account ᵀᴴᴱ ᴼᴿᴵᴳᴵᴻᴬᴸ
Image
User avatar
pip
VIP - Donator
VIP - Donator
Posts: 156
Joined: Tue Jul 12, 2011 3:13 am

Re: PictureBox WebCam Capture
pip
I feel like i have seen this alot before but good tutorial thanks for reposting here if i have it can be coded differently and it can be useful for certain things :)!

Edit: found it here real credits to lobster productions exact same one it looks like
you could at least give credits... How to Make a WebCam Picture Tool in Visual Basic 2008/2010. http://www.youtube.com/watch?v=-dMQNlrkGWQ
<a href="http://www.points2shop.com/s/xbox_point ... 5082"><img src="http://points2shop.com/images/promotion ... ricoxg.gif" border="0"/></a>
User avatar
Shim
VIP - Donator
VIP - Donator
Posts: 882
Joined: Wed Dec 14, 2011 5:02 am

Re: PictureBox WebCam Capture
Shim
i saw many tutorial on this topic here . I dont think this is a copied so thanks for posting and you can add more features like record to video and save it as avi
Find my programs on Softpedia
User avatar
3aaBrSbeel
Top Poster
Top Poster
Posts: 139
Joined: Fri Jun 01, 2012 9:34 am

Re: PictureBox WebCam Capture
3aaBrSbeel
I added the Credits.

And Thanks :)
Code'n'Stuff Signature Of 3aaBrSbeel
®║▌│█│║▌║││█║▌║▌║▌
✔ Verified Official Code'n'Stuff account ᵀᴴᴱ ᴼᴿᴵᴳᴵᴻᴬᴸ
Image
User avatar
Molegulas
Just Registered
Just Registered
Posts: 1
Joined: Sun Dec 27, 2015 5:14 pm

Re: PictureBox WebCam Capture
Molegulas
Nice this program :D But later I use one time, BANG!! I can't use again, and I don't know how to fix this :'(
5 posts Page 1 of 1
Return to “Tutorials”