Open Menu dzosoft
Close Menu dzosoft

   TODO SOBRE INFORMÁTICA Y TECNOLOGÍA


                             





Publish perfectly-optimized content in 1-click



 
 
 

Captura de cámara web en VB.NET

 
En este tutorial, le mostraré cómo crear un programa en Visual Basic.Net que permitirá a los usuarios capturar
y guarde la foto desde la cámara web integrada o conectada.
Primero se invita al usuario a seleccionar un dispositivo de video, una resolución de video y una entrada de video.
Una vez hecho esto, el usuario puede hacer clic en el botón de captura para tomar una foto desde el dispositivo de video (cámara web)


 

Requisitos

 
Comunidad de Microsoft Visual Studio(Freeware) 2019 o con licencia
AForge.dll
AForge.Video.DirectShow.dll
AForge.Video.dll

 

Paso 1:

Descargue AForge.dll, AForge.Video.DirectShow.dll, AForge.Video.dll desde aquí y guárdelo en su directorio preferido.
Comunidad abierta de Microsoft Visual Studio 2019 o con licencia
Seleccione un Nuevo proyecto en el menú Archivo.
Seleccione Visual Basic, Aplicación de Windows Forms y luego haga clic en Aceptar.
En el Panel de soluciones, haga clic derecho en el "nombre de su proyecto" y luego haga clic en agregar referencia
 
Captura de cámara web en VB.NET
 
En el administrador de referencia, haga clic en Examinar en el panel izquierdo y haga clic en "Agregar" el dll descargado.
 
Captura de cámara web en VB.NET
 
Haga clic en "Aceptar" y estamos listos ahora para diseñar nuestro formulario

 
Captura de cámara web en VB.NET
 

 

Paso 2:

Necesitamos diseñar nuestro formulario con los siguientes controles:
  Botón de comando: 1 botón que puede tomar una foto desde la cámara web, otro botón rechaza la foto tomada
y el último botón que puede guardar la foto.
  cuadro de imagen: cuadro de imagen donde se muestra la imagen capturada.
También nombraremos nuestros controles de formulario de esta manera:
cmdno es el nombre del botón para cancelar.
cmdok es el nombre del botón para guardar.
btnCapture es el nombre del botón para tomar la foto
PictureBox2 es el nombre del cuadro de imagen donde se mostrará la foto.
Imports AForge
Imports AForge.Video
Imports AForge.Video.DirectShow
Imports System.IO

Se necesita el código anterior para habilitar la cámara.

debajo de Public Class frmWebCam, pegue el siguiente código:

Atenuar la cámara como VideoCaptureDevice
Dim bmp como mapa de bits
Dim cap As String = "Capturar"


El código declarará las variables que se usaron en nuestro programa.

En el controlador de eventos frmWebCam_FormClosing, pegue el siguiente código

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


El código terminará la cámara y devolverá todo al estado inicial y luego cerrará el programa.

En el controlador de eventos frmWebCam_Load, pegue el siguiente código
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

El código mostrará un diálogo de formulario de dispositivo de captura de video, luego, una vez que el usuario elija una resolución de video, dispositivo de video y
entrada de video y hace clic en "Aceptar", luego se procederá al formulario principal, de lo contrario, se cerrará el formulario/programa.

Declare un Sub privado, llámelo "dzoCapture" y luego/o pegue los siguientes códigos (debería verse como a continuación).
 Private Sub dzoCapture(sender As Object, eventArgs As NewFrameEventArgs)
        bmp = DirectCast(eventArgs.Frame.Clone(), Bitmap)
        pbcaptureimage.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
 End Sub

Este es el código para el botón de captura y también el código capturará un cuadro del dispositivo de video como un mapa de bits.
Haga doble clic en el botón btnCapture y luego pegue lo siguiente.

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


El código mostrará la foto capturada en el cuadro Imagen, luego ocultará el botón de captura y
muestra el botón de confirmar y cancelar.

Haga doble clic en el botón cmdok y luego pegue lo siguiente.
 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


El código rechazará la imagen capturada y reiniciará la cámara. También ocultará la
botón confirmar/sí o cancelar/no desde y muestra el botón de captura.

Haga doble clic en el botón cmdok y luego pegue lo siguiente.
	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


El código guardará la foto tomada del cuadro de imagen en un directorio seleccionado
también reinicia la cámara.

 

Código completo

 
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

 
Captura de cámara web en VB.NET
 
Puedes descargar todo el proyecto desde aquí.


También te puede interesar


Todo sobre informática y tecnología

Cómo crear la herramienta Paint en VB .Net

Usar VB .Net y Active Directory

forma 3D, curva 3D y bola 3D en VB .Net usando GDI+

Usando ChatGPT en VB .Net


Leave comment
          

Guardar apodo y correo electrónico en este navegador para la próxima vez.



Cargando...     

NICOTINE FREE