USO DE IRONBARCODE

C# QR Code Reader (Tutorial Paso a Paso para Principiantes)

Actualizado 23 de febrero, 2022
Compartir:

Introducción

En el mundo digital actual, el código QR (Código de respuesta rápida) se ha convertido en omnipresente, conectando a la perfección los reinos físico y digital. Desde el marketing a la logística, pasando por las finanzas o la sanidad, los códigos QR desempeñan un papel fundamental a la hora de facilitar un intercambio de datos eficaz.

En este artículo, nos adentramos en el ámbito del desarrollo en C#, explorando cómo IronQR una de las mejores bibliotecas de códigos QR del mercado, permite a los desarrolladores aprovechar la potencia del reconocimiento de códigos QR, descodificar datos sin esfuerzo e innovar en diversos ámbitos.

IronQR de Iron Software destaca como una robusta librería .NET lectora de códigos QR. El avanzado modelo de aprendizaje automático implementado por IronQR permite a sus aplicaciones descodificar códigos QR con una precisión y eficacia inigualables, incluso en escenarios difíciles.

Cómo leer códigos QR usando C# con IronQR

  1. Cree Visual Studio proyecto con plantilla de aplicación .NET Windows forms
  2. Instale IronQR del NuGet gestor de paquetes.
  3. Obtener el código de barras de la cámara como una imagen de la Biblioteca AForge
  4. Lea códigos QR con IronQR.

    IronQR destaca como la principal biblioteca de lector de códigos QR de C# diseñada tanto para escanear códigos QR como para generar imágenes de códigos QR dentro del marco .NET. Mediante la utilización de tecnología ML de vanguardia, IronQR ha elevado la lectura de códigos QR a niveles sin precedentes.

    Tanto si escanea códigos QR de imágenes, vídeos o imágenes de cámaras en directo, la solución basada en ML garantiza una recuperación de la información rápida y fiable.

    Este enfoque innovador no sólo agiliza la extracción de datos, sino que también mejora la seguridad al discernir entre los códigos QR auténticos y las amenazas potenciales. Gracias a su intuitiva API, los desarrolladores pueden integrar perfectamente las funciones de código QR en sus proyectos .NET en cuestión de minutos.

    IronQR se integra a la perfección con .NET Core (8, 7, 6, 5 y 3.1+.)Estándar .NET (2.0+)y .NET Framework (4.6.2+). La versión actual de .NET Core amplía su compatibilidad con sistemas operativos cliente como Linux, Unix y macOS, junto con la compatibilidad para desarrollar en aplicaciones móviles.

Requisitos previos

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

Paso 1: Crear un proyecto Visual Studio con la plantilla de aplicación .NET Windows forms

Empecemos creando una aplicación .NET de formularios de Windows para leer códigos de barras QR a partir de secuencias de vídeo de cámara o archivos de imagen. Abra Visual Studio, seleccione Crear nuevo proyecto y, a continuación, seleccione la plantilla de aplicación .NET Windows Forms

Haga clic en Siguiente e introduzca el nombre del proyecto

Seleccione las versiones .NET deseadas y, a continuación, haga clic en el botón de creación

Paso 2: Instale IronQR desde el gestor de paquetes NuGet.

IronQR puede instalarse mediante NuGet o Visual Studio Package Manager

A continuación se muestra cómo puede hacerlo utilizando Visual Studio

Paso 3: Obtener el código QR de la cámara como una imagen de la Biblioteca AForge

Para escanear códigos QR desde dispositivos con cámara, necesitamos instalar la librería AForgeCore.Video.DirectShow, Esto se puede hacer usando el gestor de paquetes de Visual Studio como se muestra a continuación. Haga clic con el botón derecho del ratón en el explorador de soluciones y abra el Gestor de paquetes.

Esta biblioteca también puede instalarse mediante la función NuGet como se muestra a continuación. Haga clic en el botón de instalación para instalar la biblioteca

Paso 4: Leer Códigos QR usando IronQR.

El siguiente paso es crear un componente PictureBox en el formulario, esto es necesario para escanear la imagen del código QR desde el dispositivo de cámara conectado a la máquina.

Esto puede hacerse arrastrando y soltando desde la caja de herramientas. Este PictureBox es necesario para leer los datos del código QR del dispositivo con cámara

A continuación, tenemos que arrastrar y soltar un cuadro de texto para mostrar los códigos QR leídos.

Añade el siguiente código para leer códigos QR y descodificarlos utilizando IronQR.

using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            //  Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            //  Cargar QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            //  Objeto Lector QR
            QrReader reader = new QrReader();

            //  Leer códigos QR
            IEnumerable<QrResult> results = reader.Read(imageInput);

            //  mostrar resultados
            MessageBox.Show(results.First().Value);
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            //  Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            //  Cargar QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            //  Objeto Lector QR
            QrReader reader = new QrReader();

            //  Leer códigos QR
            IEnumerable<QrResult> results = reader.Read(imageInput);

            //  mostrar resultados
            MessageBox.Show(results.First().Value);
        }
    }
}
Imports AForge.Video.DirectShow
Imports AForge.Video
Imports System.Drawing
Imports IronQr

Namespace ReadQR
	Partial Public Class Form1
		Inherits Form

		Public Sub New()
			InitializeComponent()
			AddHandler Me.Load, AddressOf Form1_Load
			AddHandler Me.FormClosing, AddressOf Form1_FormClosing

		End Sub

		Private videoSource As VideoCaptureDevice
		Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
			If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
				videoSource.SignalToStop()
				videoSource.WaitForStop()
			End If
		End Sub

		Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim videoDevices As 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(ByVal sender As Object, ByVal eventArgs As NewFrameEventArgs)
			'  Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
			pictureBox1.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			Dim image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			'  Cargar QrImageInput
			Dim imageInput As New QrImageInput(image)

			'  Objeto Lector QR
			Dim reader As New QrReader()

			'  Leer códigos QR
			Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

			'  mostrar resultados
			MessageBox.Show(results.First().Value)
		End Sub
	End Class
End Namespace
VB   C#

Archivo de imagen de entrada

El texto codificado en el código QR es: I Love IronQR

Salida

Ejemplo Explicación del código

  1. Hemos registrado 2 eventos en formularios Windows Form1_Load, Form1_FormClosing
  2. También registramos VideoSource_NewFrame a una instancia de videoSource de la librería AForgeCore.Video.DirectShow
  3. A continuación, leemos los códigos QR del flujo de vídeo en directo
  4. Cuando se detecta el código QR mostramos un MessageBox con el Texto decodificado

Licencias (prueba gratuita disponible)

IronQR requiere una clave de licencia. Se puede obtener una clave de prueba en el sitio web aquí. Esta clave debe colocarse en appsettings.json.

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

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

Conclusión

En conclusión, los códigos QR han trascendido sus orígenes para convertirse en indispensables en nuestro ecosistema digital. Con IronQR Los desarrolladores de C# pueden aprovechar la potencia del reconocimiento de códigos QR, descodificar datos en varios tipos de códigos QR con facilidad e innovar en varios dominios.

A medida que los códigos QR sigan evolucionando e integrándose en las nuevas tecnologías, su importancia a la hora de facilitar el intercambio fluido de datos y mejorar la experiencia de los usuarios no hará sino crecer. Aproveche el potencial de los códigos QR con IronQR y embárquese en un viaje de innovación y eficacia en el desarrollo de C#.

< ANTERIOR
Cómo generar códigos de barras en ASP.NET usando C#

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

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