Saltar al pie de página
USO DE IRONBARCODE

Cómo Leer un Código de Barras desde la Cámara en VB .NET

En el cambiante panorama de la tecnología, los dispositivos lectores de códigos de barras se han convertido en una parte integral de diversas industrias, que van desde el comercio minorista y la logística hasta la salud y la fabricación. Visual Basic .NET de Microsoft, un lenguaje de programación versátil y potente, proporciona a los desarrolladores un marco sólido para crear aplicaciones que pueden leer códigos de barras directamente desde una transmisión de cámara. Este artículo tiene como objetivo proporcionar un tutorial completo de lector de códigos de barras usando una cámara en Visual Basic utilizando la biblioteca IronBarcode de Iron Software.

La biblioteca IronBarcode le 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 desde un documento PDF. Es capaz de escanear un máximo de un código de barras a la vez. El tipo de código de barras debe especificarse en el momento de leer la imagen del código de barras en el SDK lector de códigos de barras de VB.NET.

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

  1. Cree un nuevo proyecto VB.NET en Visual Studio
  2. Instale la Biblioteca IronBarcode y aplíquela en su proyecto
  3. Obtenga el código de barras de la cámara como una imagen usando la Biblioteca AForge
  4. Decodifique la imagen del código de barras usando IronBarcode

Requisitos previos

  1. Visual Studio: Asegúrese de tener instalado Visual Studio u otro entorno de desarrollo de VB.NET.
  2. Cámara Compatible: Asegúrese de que dicha cámara esté conectada a su dispositivo.
  3. Administrador de Paquetes NuGet: Asegúrese de poder usar NuGet para administrar paquetes en su proyecto.

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

Crea una nueva aplicación de formularios Windows en VB.NET (o usa un proyecto existente) donde desees alojar el código para leer el código de barras de tu cámara.

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

En el siguiente paso, puedes proporcionar los nombres de solución y proyecto.

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

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

Paso 2: Instalar la biblioteca de IronBarcode

Abra su proyecto VB.NET e instale la biblioteca IronBarcode usando la Consola del Administrador de Paquetes NuGet:

Install-Package BarCode

Cómo Leer un Código de Barras desde la Cámara en VB .NET: Figura 3 - Instalando el paquete NuGet IronBarcode

El paquete NuGet también se puede instalar usando el Administrador de Paquetes de NuGet de Visual Studio, como se muestra abajo.

Cómo Leer un Código de Barras desde la Cámara en VB .NET: Figura 4 - Instalando IronBarcode a través del Administrador de Paquetes de Visual Studio

Paso 3: Leyendo el código de barras desde la cámara

Para escanear la transmisión y capturar la imagen de la cámara, necesitamos la Biblioteca AForge. Instálalo como se indica desde NuGet.

Cómo Leer un Código de Barras desde la Cámara en VB .NET: Figura 5 - Paquetes de la biblioteca AForge que se encuentran en el Administrador de Paquetes de Visual Studio

El siguiente paso es agregar el control PictureBox desde el Toolbox a los formularios. Esto se utiliza para capturar la imagen desde la cámara.

Cómo Leer un Código de Barras desde la Cámara en VB .NET: Figura 6 - Agregando el control PictureBox

Luego copie el código inferior en la aplicación de formularios y cree el componente lector de códigos de barras VB .NET desde IronBarcode.

Imports IronBarCode
Imports AForge.Video
Imports AForge.Video.DirectShow

Public Class Form1
    Private videoDevices As FilterInfoCollection
    Private videoSource As VideoCaptureDevice

    ' Event handler for form load
    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

    ' Event handler for capturing and processing new frame from the video source
    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

    ' Method to display the barcode result
    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 value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub

    ' Event handler for form closing
    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

    ' Event handler for form load
    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

    ' Event handler for capturing and processing new frame from the video source
    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

    ' Method to display the barcode result
    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 value in a MessageBox or any other UI element
            MessageBox.Show("Barcode Value: " & barcodeValue, "Barcode Detected")
        End If
    End Sub

    ' Event handler for form closing
    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 muestra, lo hemos configurado para leer códigos QR y códigos de barras Code 128. Primero, usamos un PictureBox para capturar imágenes de códigos de barras de una webcam o cualquier dispositivo de cámara escaneando el código de barras. Luego, creamos una imagen bitmap, que luego se proporciona como entrada a la clase BarcodeReader de IronBarcode. Esta aplicación lee el código de barras 2D de las imágenes y los decodifica. Si se obtiene un resultado positivo después de la decodificación, entonces el resultado se muestra en el cuadro de mensaje.

Licencia (Prueba gratuita disponible)

Para usar IronBarcode, necesita colocar una clave de licencia en su appsettings.json.

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

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

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

Conclusión

Implementar la lectura de códigos de barras desde una cámara en VB.NET es una característica poderosa que puede mejorar varias aplicaciones en diferentes industrias. Al aprovechar bibliotecas como IronBarcode e integrarlas en su proyecto VB.NET, puede crear aplicaciones de escaneo de códigos de barras eficientes y confiables que satisfagan las demandas 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 según sus requisitos específicos, tipos de códigos de barras y casos de uso.

Preguntas Frecuentes

¿Cómo puedo leer códigos de barras desde una cámara usando VB.NET?

Para leer códigos de barras desde una cámara en VB.NET, puedes usar la biblioteca IronBarcode para decodificar imágenes capturadas de la transmisión de una cámara. Primero, configura un proyecto VB.NET en Visual Studio, instala IronBarcode a través de NuGet y utiliza la biblioteca AForge para gestionar la entrada de la cámara.

¿Qué pasos se involucran en la configuración de un proyecto lector de códigos de barras en VB.NET?

Comienza creando una nueva aplicación de formularios Windows en VB.NET en Visual Studio. Instala la biblioteca IronBarcode utilizando NuGet y configura un PictureBox para capturar imágenes de tu cámara. Usa la biblioteca AForge para manejar las transmisiones de la cámara y IronBarcode para decodificar códigos de barras.

¿Cómo integrarme con capacidades de captura de cámara en una aplicación VB.NET?

Puedes integrar capacidades de captura de cámara en una aplicación VB.NET usando la biblioteca AForge para acceder y gestionar las transmisiones de la cámara. Estas transmisiones entonces se pueden procesar para capturar imágenes para decodificación de códigos de barras usando IronBarcode.

¿Qué tipos de códigos de barras se pueden decodificar usando IronBarcode en un proyecto de VB.NET?

IronBarcode soporta la decodificación de una amplia gama de tipos de códigos de barras, incluyendo códigos QR y código 128, en un proyecto VB.NET. La biblioteca es versátil y se puede configurar para reconocer diferentes formatos de códigos de barras.

¿Cuáles son los componentes necesarios para desarrollar una aplicación de escaneo de códigos de barras en VB.NET?

Para desarrollar una aplicación de escaneo de códigos de barras en VB.NET, necesitas Visual Studio, una cámara compatible, la biblioteca IronBarcode instalada a través de NuGet y la biblioteca AForge para manejar la entrada de la cámara.

¿Cómo puedo solucionar problemas comunes al leer códigos de barras desde una cámara en VB.NET?

Asegúrate de que tu cámara esté correctamente conectada y reconocida por tu sistema. Verifica que las bibliotecas IronBarcode y AForge estén correctamente instaladas y que tu aplicación tenga acceso a la transmisión de la cámara. Revisa la sintaxis del código y las referencias de la biblioteca para detectar errores.

¿Cuál es el proceso para mostrar los resultados del escaneo de códigos de barras en una aplicación VB.NET?

Una vez que un código de barras es decodificado usando IronBarcode, puedes mostrar el resultado en tu aplicación VB.NET mostrándolo en un componente de interfaz de usuario como un MessageBox o una Label para presentar los datos del código de barras al usuario.

¿Puedo probar la biblioteca de códigos de barras antes de comprarla, y cómo obtengo la prueba?

Sí, puedes probar la biblioteca de códigos de barras obteniendo una clave de licencia de prueba desde el sitio web de Iron Software. Envía tu dirección de correo electrónico y recibirás la clave de prueba por correo electrónico para usar en tus proyectos VB.NET.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más