Open Menu dzosoft
Close Menu dzosoft

   TOUT SUR L'INFORMATIQUE ET LA TECHNOLOGIE


                             




Dazzle with your smile!

Publish perfectly-optimized content in 1-click



 
 
 

Capture par webcam en VB.NET

 
Capture par webcam en VB.NET

Dans ce tutoriel, je vais vous montrer comment créer un programme dans Visual Basic.Net qui permettra aux utilisateurs de capturer
et enregistrez la photo de la webcam intégrée ou connectée.
L'utilisateur est d'abord invité à sélectionner un périphérique vidéo, une résolution vidéo et une entrée vidéo.
Une fois terminé, l'utilisateur peut cliquer sur le bouton de capture pour prendre une photo à partir du périphérique vidéo (webcam).


 

Exigences

 
Communauté Microsoft Visual Studio (Freeware) 2019 ou avec licence
AForge.dll
AForge.Video.DirectShow.dll
AForge.Video.dll

 

Étape 1:

Téléchargez AForge.dll, AForge.Video.DirectShow.dll, AForge.Video.dll depuis ici et enregistrez-le dans votre répertoire préféré.
Ouvrez la communauté Microsoft Visual Studio 2019 ou avec licence
Sélectionnez un nouveau projet dans le menu Fichier.
Sélectionnez Visual Basic, Windows Form Application, puis cliquez sur OK.
Sur le panneau de la solution, faites un clic droit sur le « nom de votre projet » puis cliquez sur ajouter une référence
 
Capture par webcam en VB.NET
 
Sur le gestionnaire de références, cliquez sur Parcourir dans le panneau de gauche et cliquez sur « Ajouter » la DLL téléchargée.
 
Capture par webcam en VB.NET
 
Cliquez sur « Ok » et nous sommes maintenant prêts à concevoir notre formulaire

 
Capture par webcam en VB.NET
 

 

Étape 2:

Nous devons concevoir notre formulaire à l'aide des contrôles suivants :
  Bouton de commande – 1 bouton qui peut prendre une photo depuis la webcam, un autre bouton rejette la photo prise
et le dernier bouton qui permet de sauvegarder la photo.
  Zone d'image – zone d'image dans laquelle l'image capturée est affichée.
Nous nommerons également nos contrôles de formulaire de cette manière :
cmdno est le nom du bouton d'annulation.
cmdok est le nom du bouton de sauvegarde.
btnCapture est le nom du bouton pour prendre la photo
PictureBox2 est le nom de la zone d'image dans laquelle la photo sera affichée.

Importations AForge
Importations AForge.Vidéo
Importe AForge.Video.DirectShow
Importe System.IO


Le code ci-dessus est nécessaire pour activer la caméra.

sous Public Class frmWebCam, collez le code suivant :

Dim camera As VideoCaptureDevice
Dim bmp As Bitmap
Dim cap As String = "Capture"

Le code déclarera les variables utilisées dans notre programme.

Dans le gestionnaire d'événements frmWebCam_FormClosing, collez le code suivant

Private Sub frmWebCam_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing

Try camera.Stop() Catch ex As Exception Me.Dispose() End Try End Sub



Le code mettra fin à la caméra et ramènera tout à l'état initial, puis fermera le programme.

Dans le gestionnaire d'événements frmWebCam_Load, collez le code suivant

Private Sub frmWebCam_Load(sender As Object, e As EventArgs) Handles MyBase.Load
	cmdno.Visible = False
	cmdok.Visible = False
	Dim videoCapDevFrm As VideoCaptureDeviceForm = New VideoCaptureDeviceForm()


If videoCapDevFrm.ShowDialog() = DialogResult.OK Then camera = videoCapDevFrm.VideoDevice AddHandler camera.NewFrame, New NewFrameEventHandler(AddressOf dzoCapture) camera.Start() Else Me.Close() End If End Sub


Le code affichera une boîte de dialogue sous forme de périphérique de capture vidéo, puis une fois que l'utilisateur aura choisi une résolution vidéo, un périphérique vidéo et
entrée vidéo et clique sur « OK », puis il passera au formulaire principal, sinon le formulaire/programme se ferme.

Déclarez un Sub Privé en le nommant « dzoCapture » puis/ou collez les codes suivants (il devrait ressembler à ci-dessous).

 Private Sub dzoCapture(sender As Object, eventArgs As NewFrameEventArgs)
        bmp = DirectCast(eventArgs.Frame.Clone(), Bitmap)
        pbcaptureimage.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
 End Sub


Il s'agit du code du bouton de capture et le code capturera également une image du périphérique vidéo sous forme de bitmap.
Double-cliquez sur le bouton btnCapture puis collez ce qui suit.


Private Sub btnCapture_Click(sender As Object, e As EventArgs) Handles btnCapture.Click
        If cap = "Capture" Then
            cmdno.Visible = True
            cmdok.Visible = True
            btnCapture.Visible = False
            camera.Stop()
            cap = "Start"
        ElseIf cap = "Start" Then
            camera.Start()
            cmdno.Visible = False
            cmdok.Visible = False
            cap = "Capture"
        End If
End Sub



Le code affichera la photo capturée dans la zone Image, puis masquera le bouton de capture et
affiche le bouton de confirmation et d'annulation.

Double-cliquez sur le bouton cmdok puis collez ce qui suit.

 Private Sub cmdno_Click(sender As Object, e As EventArgs) Handles cmdno.Click
        camera.Start()
        cmdno.Visible = False
        cmdok.Visible = False
        btnCapture.Visible = True
        cap = "Capture"
    End Sub


Le code rejettera l'image capturée et redémarrera la caméra. Cela masquera également le
confirmer/oui ou annuler/non et affiche le bouton de capture.

Double-cliquez sur le bouton cmdok puis collez ce qui suit.

	Private Sub cmdok_Click(sender As Object, e As EventArgs) Handles cmdok.Click
        Dim saveDlg As New SaveFileDialog
        saveDlg.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
        saveDlg.FileName = "VBNetCapture_" & Date.Now.ToString("MM/dd/yy")
        saveDlg.SupportMultiDottedExtensions = True
        saveDlg.AddExtension = True
        saveDlg.Filter = "PNG File|*.png"
        If saveDlg.ShowDialog() = DialogResult.OK Then
            Try
                pbcaptureimage.Image.Save(saveDlg.FileName, Imaging.ImageFormat.Png)
                camera.Start()
                cmdno.Visible = False
                cmdok.Visible = False
                btnCapture.Visible = True
                cap = "Capture"
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        Else
            camera.Start()
            cmdno.Visible = False
            cmdok.Visible = False
            btnCapture.Visible = True
            cap = "Capture"
        End If
    End Sub


Le code enregistrera la photo prise depuis la zone d'image dans un répertoire sélectionné
il redémarre également la caméra.

 

Code complet

 

Imports AForge
Imports AForge.Video
Imports AForge.Video.DirectShow
Imports System.IO
Public Class frmWebCam
    Dim camera As VideoCaptureDevice
    Dim bmp As Bitmap
    Dim cap As String = "Capture"

Private Sub frmWebCam_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Try camera.Stop() Catch ex As Exception Me.Dispose() End Try End Sub Private Sub frmWebCam_Load(sender As Object, e As EventArgs) Handles MyBase.Load cmdno.Visible = False cmdok.Visible = False Dim videoCapDevFrm As VideoCaptureDeviceForm = New VideoCaptureDeviceForm()
If videoCapDevFrm.ShowDialog() = DialogResult.OK Then camera = videoCapDevFrm.VideoDevice AddHandler camera.NewFrame, New NewFrameEventHandler(AddressOf dzoCapture) camera.Start() Else Me.Close() End If End Sub Private Sub dzoCapture(sender As Object, eventArgs As NewFrameEventArgs) bmp = DirectCast(eventArgs.Frame.Clone(), Bitmap) pbcaptureimage.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap) End Sub Private Sub pbcapture_Click(sender As Object, e As EventArgs) Handles pbcapture.Click If cap = "Capture" Then cmdno.Visible = True cmdok.Visible = True pbcapture.Visible = False camera.Stop() cap = "Start" ElseIf cap = "Start" Then camera.Start() cmdno.Visible = False cmdok.Visible = False Cap = "Capture" End If End Sub
Private Sub cmdno_Click(sender As Object, e As EventArgs) Handles cmdno.Click camera.Start() cmdno.Visible = False cmdok.Visible = False pbcapture.Visible = True cap = "Capture" End Sub
Private Sub cmdok_Click(sender As Object, e As EventArgs) Handles cmdok.Click Dim saveDlg As New SaveFileDialog saveDlg.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop saveDlg.FileName = "VBNetCapture_" & Date.Now.ToString("MM/dd/yy") saveDlg.SupportMultiDottedExtensions = True saveDlg.AddExtension = True saveDlg.Filter = "PNG File|*.png" If saveDlg.ShowDialog() = DialogResult.OK Then Try pbcaptureimage.Image.Save(saveDlg.FileName, Imaging.ImageFormat.Png) camera.Start() cmdno.Visible = False cmdok.Visible = False pbcapture.Visible = True cap = "Capture" Catch ex As Exception MessageBox.Show(ex.Message) End Try Else camera.Start() cmdno.Visible = False cmdok.Visible = False pbcapture.Visible = True Cap = "Capture" End If End Sub End Class

 
Capture par webcam en VB.NET
 
vous pouvez télécharger l'intégralité du projet à partir d'ici

También te puede interesar


TOUT SUR  L'INFORMATIQUE ET LA TECHNOLOGIE

Comment créer un outil Paint dans VB .Net

Utilisez VB .Net et Active Directory

Forme 3D, courbe 3D et boule 3D en VB .Net avec GDI+

Utilisation de ChatGPT dans VB .Net


Leave comment
          

Enregistrez le pseudo et l'e-mail dans ce navigateur pour la prochaine fois.



Cargando...     

Publish perfectly-optimized content in 1-click