USO DE IRONBARCODE

Cómo leer un código de barras desde una cámara en VB .NET

Actualizado 6 de marzo, 2024
Compartir:

En el panorama tecnológico en rápida evolución, los escáneres de códigos de barras se han convertido en parte integrante de diversos sectores, desde el comercio minorista y la logística hasta la sanidad y la fabricación. Visual Basic .NET de Microsoft, un lenguaje de programación versátil y potente, ofrece a los desarrolladores un marco sólido para crear aplicaciones capaces de leer códigos de barras directamente desde una cámara. Este artículo tiene como objetivo proporcionar un tutorial completo lector de código de barras utilizando una cámara en Visual Basic utilizando el **Código de barras de hierro biblioteca de **Software de hierro

La biblioteca IronBarcode permite leer archivos de imágenes de códigos de barras y también cuando se transmiten desde cámaras. También admite la lectura de códigos de barras de un documento PDF. Capaz de escanear como máximo un código de barras a la vez. Es necesario especificar el tipo de código de barras en el momento de leer la imagen del código de barras en el SDK lector de código de barras VB.NET.

Cómo leer un código de barras desde una cámara en VB .NET

  1. Crear un nuevo proyecto VB.NET en Visual Studio
  2. Instale la librería IronBarcode y aplíquela a su proyecto
  3. Obtener el código de barras de la cámara como una imagen de la Biblioteca Aforge
  4. Descodificar la imagen del código de barras con IronBarcode

Requisitos previos

  1. Visual Studio: Asegúrese de tener instalado Visual Studio o cualquier otro entorno de desarrollo VB.NET.
  2. Cámara compatible: Asegúrese de que dicha cámara está conectada a su dispositivo.
  3. NuGet Package Manager: Asegúrese de que puede utilizar NuGet para gestionar paquetes en su proyecto.

Paso 1: Crear un nuevo proyecto Visual Basic .NET en Visual Studio

Crear una nueva aplicación VB.NET Windows Form (o utilizar un proyecto existente) donde desea alojar el código para leer el código de barras de su cámara.

Cómo Leer un Código de Barras desde una Cámara en VB .NET: Figura 1 - Crear nueva aplicación VB.NET Windows form

En El siguiente paso, puede proporcionar los nombres de la solución y del proyecto.

Cómo Leer un Código de Barras desde una Cámara en VB .NET: Figura 2 - Configuración del proyecto con el nombre y la solución

Seleccione la versión .NET y haga clic en el botón "Crear".

Paso 2: Instalar la librería IronBarcode

Abra su proyecto C# e instale la librería IronBarcode utilizando el comando NuGet Consola del gestor de paquetes:

Install-Package BarCode

Cómo leer un código de barras desde una cámara en VB .NET: Figura 3 - Instalación del paquete NuGet IronBarcode

El paquete NuGet también puede instalarse mediante el gestor de paquetes NuGet de Visual Studio, como se muestra a continuación.

Cómo leer un código de barras desde una cámara en VB .NET: Figura 4 - Instalación de IronBarcode mediante el gestor de paquetes de Visual Studio

Paso 3: Lectura del código de barras desde la cámara

Para escanear el feed y capturar la imagen de la cámara, necesitamos la librería AForge. Instálelo como se indica a continuación desde el gestor de paquetes NuGet

Cómo leer un código de barras de la cámara en VB .NET: Figura 5 - AForge library package's que se encuentran en Visual Studio Package Manager

El siguiente paso es añadir el control PictureBox de ToolBox a los formularios. Se utiliza para capturar la imagen de la cámara.

Cómo Leer un Código de Barras desde una Cámara en VB .NET: Figura 6 - Añadir el control PictureBox

A continuación, copie el código siguiente en la aplicación de formularios y cree el componente lector de códigos de barras VB .NET de IronBarcode.

Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow
Public Class Form1
    Private videoDevices As FilterInfoCollection
    Private videoSource As VideoCaptureDevice
    Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
        If videoDevices.Count > 0 Then
            videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
            AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
            videoSource.Start()
        Else
            MessageBox.Show("No video devices found.")
            Close()
        End If
    End Sub
    Private Sub VideoSource_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
        pictureBoxCamera.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
        ' Process each frame for barcode recognition
        Dim image = DirectCast(pictureBoxCamera.Image, Bitmap)
        Dim result = BarcodeReader.QuicklyReadOneBarcode(image, BarcodeEncoding.QRCode Or BarcodeEncoding.Code128)
        If result IsNot Nothing Then
            ' Barcode found, handle the new result (e.g., display the barcode value)
            Dim barcodeValue As String = result.Text
            ShowBarcodeResult(barcodeValue)
        End If
    End Sub
    Private Sub ShowBarcodeResult(barcodeValue As String)
        ' Invoke on UI thread to update UI controls
        If InvokeRequired Then
            Invoke(New Action(Of String)(AddressOf ShowBarcodeResult), barcodeValue)
        Else
            ' Display the barcode font value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub
    Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
            videoSource.SignalToStop()
            videoSource.WaitForStop()
        End If
    End Sub
End Class
Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow
Public Class Form1
    Private videoDevices As FilterInfoCollection
    Private videoSource As VideoCaptureDevice
    Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        videoDevices = New FilterInfoCollection(FilterCategory.VideoInputDevice)
        If videoDevices.Count > 0 Then
            videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
            AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
            videoSource.Start()
        Else
            MessageBox.Show("No video devices found.")
            Close()
        End If
    End Sub
    Private Sub VideoSource_NewFrame(sender As Object, eventArgs As NewFrameEventArgs)
        pictureBoxCamera.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
        ' Process each frame for barcode recognition
        Dim image = DirectCast(pictureBoxCamera.Image, Bitmap)
        Dim result = BarcodeReader.QuicklyReadOneBarcode(image, BarcodeEncoding.QRCode Or BarcodeEncoding.Code128)
        If result IsNot Nothing Then
            ' Barcode found, handle the new result (e.g., display the barcode value)
            Dim barcodeValue As String = result.Text
            ShowBarcodeResult(barcodeValue)
        End If
    End Sub
    Private Sub ShowBarcodeResult(barcodeValue As String)
        ' Invoke on UI thread to update UI controls
        If InvokeRequired Then
            Invoke(New Action(Of String)(AddressOf ShowBarcodeResult), barcodeValue)
        Else
            ' Display the barcode font value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub
    Private Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
            videoSource.SignalToStop()
            videoSource.WaitForStop()
        End If
    End Sub
End Class
VB.NET

En este código de ejemplo, hemos configurado para leer el código QR, matriz de datos, y las imágenes de código de barras con código 128 tipo de código de barras. En primer lugar, utilizamos PictureBox para capturar imágenes de códigos de barras desde una webcam o cualquier dispositivo con cámara escaneando el código de barras. A continuación, creamos una imagen de mapa de bits. Que luego se proporciona como entrada a la clase IronBarcode BarcodeReader. Esta aplicación lee los códigos de barras 2D de las imágenes y los descodifica. Si tras la descodificación se obtiene un resultado positivo, éste se muestra en el cuadro de mensajes.

Licencias (prueba gratuita disponible)

**Código de barras de hierro. Esta clave debe colocarse en appsettings.json.

{
    "IronBarcode.LicenseKey":"MYLICENSE.KEY.TRIAL"
}

Proporcione el ID de correo electrónico del usuario para obtener una licencia de prueba y después de enviar el ID de correo electrónico, la clave será enviada por correo electrónico.

Cómo leer un código de barras desde una cámara en VB .NET: Figura 7 - Ventana emergente después de enviar correctamente un formulario de prueba

Conclusión

Implementación de la lectura de códigos de barras desde una cámara en **VB.NET es una potente función que puede mejorar varias aplicaciones en distintos sectores. Aprovechando bibliotecas como **Código de barras de hierro e integrándolos en su proyecto VB.NET, podrá crear aplicaciones de escaneado de códigos de barras eficaces y fiables que satisfagan las exigencias del mundo tecnológico actual. Esta guía sirve como punto de partida, y los desarrolladores pueden personalizar y optimizar aún más la solución en función de sus requisitos específicos, tipos de códigos de barras y casos de uso.

< ANTERIOR
Cómo utilizar códigos de barras 2D en VB .NET
SIGUIENTE >
Cómo generar código de barras Code 128 en C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 1,069,531 Ver licencias >
123