COMPARACIóN CON OTROS COMPONENTES

Cómo escanear códigos de barras en ZXing para desarrolladores de C#.

Actualizado 21 de junio, 2023
Compartir:

Introducción

Los códigos de barras ofrecen una forma clara y legible por máquina de presentar los datos. Al principio, los códigos de barras consistían en líneas paralelas de anchura y espaciado variables que servían para representar datos. Estos sistemas tradicionales lineales o unidimensionales (1D) Los códigos de barras podían escanearse mediante dispositivos ópticos especializados denominados lectores de códigos de barras. Sin embargo, la evolución de los códigos de barras condujo a la invención de los códigos bidimensionales. (2D) códigos de barras, también conocidos como códigos matriciales. A diferencia de los códigos de barras tradicionales, los códigos de barras 2D utilizan patrones como rectángulos, puntos y hexágonos en lugar de barras. Para leer estos códigos de barras 2D, existen escáneres ópticos específicos o métodos alternativos que utilizan una cámara digital conectada a un ordenador con un programa informático de descodificación. Además, dispositivos móviles como los smartphones pueden aprovechar sus cámaras integradas y aplicaciones específicas para funcionar como escáner de códigos de barras 2D.

Lector de códigos de barras ZXing

Zebra Crossing, a menudo conocido como ZXing, es un kit de herramientas de procesamiento de imágenes de códigos de barras 1D/2D multiformato de código abierto desarrollado en Java y con puertos para otros lenguajes. La biblioteca central de descodificación de imágenes, el código cliente específico de Java y el cliente de Android Barcode Scanner son sólo algunos de los módulos que componen ZXing. Numerosos proyectos independientes de código abierto se basan en él.

1. Características

  • Puede realizar un seguimiento de URL, información de contacto, eventos del calendario y mucho más.
  • Se creó pensando en las aplicaciones Java SE.
  • A través del propósito, la integración del escáner de código de barras es posible.
  • Se trata de una sencilla aplicación para Google Glass.

2. Uso de ZXing con .NET

Abra Visual Studio, seleccione "nuevo proyecto" en el menú archivo y, a continuación, "aplicación de consola". En este artículo, vamos a elegir la aplicación de consola C#.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 1

Introduzca el nombre del proyecto y la ruta del archivo en el cuadro de texto correspondiente. A continuación, haga clic en el botón Crear para elegir el .NET Framework necesario.

Si ha seleccionado una aplicación de consola, el proyecto creará ahora su estructura y abrirá el archivo program.cs, permitiéndole introducir el código del programa y compilarlo o ejecutarlo.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 2

2.1 Instalar ZXing Barcode

Introduzca el siguiente comando en la consola de NuGet Package Manager.

Install-Package ZXing.Net.Bindings.Windows.Compatibility

Alternativamente, podemos obtener el elemento utilizando la herramienta de gestión de paquetes NuGet. Como la siguiente ilustración. Intente instalar el primer resultado que elija.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 3

2.2 Lectura y escritura de códigos de barras con ZXing

Podemos crear un código de barras utilizando el siguiente código de ejemplo. ZXing nos permite crear más de 10 tipos de formato de código de barras.

using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
Imports ZXing.Windows.Compatibility

Private options = New QrCodeEncodingOptions With {
	.Width = 250,
	.Height = 250
}

Private writer = New BarcodeWriter()
writer.Format= BarcodeFormat.QR_CODE
writer.Options = options
Dim _bitmap As System.Drawing.Bitmap=writer.Write("Hello world")
_bitmap.Save("Demo1.png")
VB   C#

Arriba, estamos estableciendo la altura y la anchura para el QrCodeEncodingOptions. A continuación creamos un objeto para BarcodeWriter. Para el BarcodeWriter, estamos estableciendo el formato de código de barras como QR_Code. Luego asignamos la opción qrcode que creamos anteriormente. La función de escritura en el BarcodeWriter codifica la cadena dada en un código de barras y devuelve el código de barras como una imagen de mapa de bits. A continuación, con la ayuda de la función guardar en el mapa de bits, podemos guardar la imagen. A continuación se muestra el resultado del código.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 4


using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}

using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Imports ZXing.Windows.Compatibility
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Private reader = New BarcodeReader()
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
	Console.WriteLine(result.Text)
	Console.ReadKey()
End If
VB   C#

En el código anterior, primero cargamos la imagen en un mapa de bits. A continuación, creamos un objeto BarcodeReader. La función Decode nos permite pasar bitmap como parámetro, pudiendo devolver el resultado en múltiples tipos. A continuación, utilizamos la propiedad Text para obtener el texto codificado en el código de barras.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 5

IronBarcode

Con la ayuda de esta biblioteca de códigos de barras, leer y crear códigos de barras es muy sencillo. Un código de barras dinámico es fácil de hacer con la librería de IronBarcode. Con sólo unas pocas líneas de código, esta sencilla biblioteca puede generar un código de barras, que nos ayuda a codificar imágenes de código de barras. IronBarcode nos permite generar códigos de barras en lenguajes como C# y VB.NET.

1. Características

  • IronBarcode puede leer y escribir la mayoría de formatos de imagen de códigos de barras y estándares QR, incluidos UPC A/E, Databar, EAN 8/13, MSI, Code 39/93/128, CodaB, RSS 14/Expanded e ITF.
  • Al escanear barridos y fotogramas de vídeo en tiempo real, IronBarcode puede rectificar la rotación, el ruido, la distorsión y la inclinación. Para mejorar la precisión y la velocidad de lectura, IronBarcode preprocesa automáticamente las imágenes de códigos de barras a medida que se van creando. Los códigos de barras dinámicos se utilizan con frecuencia, ya que permiten cambiar el contenido.
  • La capacidad de IronBarcode para utilizar muchos núcleos e hilos es ventajosa para los servidores de procesamiento por lotes.
  • En documentos de una o varias páginas, IronBarcode puede encontrar automáticamente uno o varios códigos de barras.

2. Uso de IronBarcode

Para utilizar la biblioteca IronBarcode en la solución, debe descargar el paquete necesario. Para ello, utilice el código del gestor de paquetes que se describe a continuación:

:PackageInstall

Como alternativa, puede utilizar el gestor de paquetes NuGet, que mostrará todos los resultados de la búsqueda, para buscar y descargar el paquete "Barcode". A continuación, puede seleccionar el paquete esencial para descargar en el programa de ellos.

Cómo escanear códigos de barras en ZXing For C# Developers Figura 6

3. Leer y escribir códigos de barras con IronBarcode

Con unas pocas líneas de código, podemos crear rápidamente imágenes de códigos de barras utilizando la biblioteca IronBarcode. Además, nos permite guardar el código de barras creado como un archivo de imagen independiente. A continuación se muestra un ejemplo de código Visual Basic para crear una etiqueta de código de barras con un programa de Consola.

using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png")
VB   C#

Se produce un gráfico de 500 por 500 píxeles utilizando un nivel medio de corrección de errores, y luego se guarda en una ubicación de archivo utilizando el método SaveAsPng.

El siguiente ejemplo de código lee el texto codificado en el código QR que hemos creado en el ejemplo anterior.

var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
Dim barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Dim reader=IronBarCode.BarcodeReader.Read(barcodeBitmap)
Console.WriteLine(reader.Values()(0))
Console.ReadKey()
VB   C#

Primero cargamos la imagen en un mapa de bits y luego la leemos utilizando el método Read de la clase BarcodeReader. Utilizamos la propiedad Values del objeto BarcodeResults devuelto por el método Read para obtener el contenido que se ha leído del código QR.

Para saber más sobre ZXing y cómo se compara con IronBarcode, lea esto siguiente entrada del blog.

Nuestra Lectura de códigos de barras también proporciona más información sobre cómo utilizar IronBarcode para leer códigos de barras y códigos QR. Para más tutoriales de código en IronBarcode.

Conclusión

El escáner de códigos de barras ZXing puede crear códigos de barras de alta calidad, pero está anticuado y admite pocos formatos de códigos de barras. Además, la documentación y el soporte del producto son limitados.

Por otro lado, IronBarcode es muy eficiente y flexible, y es capaz de funcionar en muchos sistemas operativos. IronBarcode puede cambiar el color, el tamaño, el espaciado y las letras utilizadas en los códigos de barras. También es compatible con Crystal Reports.

Los promotores pueden utilizar IronBarcode gratis. Los usuarios pueden adquirir un licencia para acceder a funciones adicionales y recibir un año completo de asistencia y actualizaciones del producto.

SIGUIENTE >
Biblioteca de códigos QR de ZXing.org e IronBarcode: Una comparación exhaustiva

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

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