COMPARACIóN CON OTROS COMPONENTES

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

Jordi Bardia
Jordi Bardia
19 de abril, 2023
Compartir:

Si ya dispone de una imagen electrónica del código de barras en el teléfono técnico/teléfono administrativo y desea descifrarlo como datos de texto en inglés, es posible que un escáner de códigos de barras no sea la mejor herramienta. Además, los escáneres de códigos de barras están limitados a leer únicamente códigos de barras 1-D que tienen restringida la capacidad de almacenamiento, el estado de dominio, los formatos compatibles y sólo pueden utilizarse con la biblioteca de clases de Windows RT. Hoy en día, los códigos de barras 2-D (también llamados códigos QR) son más comunes y pueden almacenar significativamente más información, como la fecha actualizada.

Una aplicación de escaneado de códigos de barras puede ejecutarse en Windows, MacOS o Linux sin depender de herramientas o API de terceros, ya que es compatible con .NET.

Biblioteca de códigos QR ZXing.org e IronBarcode: Una comparación integral: Figura 2 - Aplicación web

Crear y escanear códigos de barras se ha convertido en algo esencial para que muchas empresas eviten el spam. Dos herramientas populares para crear códigos de barras son el proyecto de código abierto ZXing decode y IronBarcode. En este artículo, exploraremos las características y ventajas de cada una de estas herramientas y las compararemos.

Decodificador ZXing

ZXing es una conocida biblioteca de código abierto para generar y descodificar códigos de barras 1D y 2D.

También es compatible con varios lenguajes de programación, como Java, C++ y .NET.

ZXing Decoder Online es una herramienta web que permite a los usuarios escanear y descodificar códigos de barras e imágenes de códigos QR. Además, los usuarios pueden crear códigos QR para cualquier información, que suele ser en forma de URL o texto que desean codificar.

Para utilizar el descodificador en línea ZXing, sigue estos pasos:

  1. Visite el sitio web de ZXing Decoder Online.

    Biblioteca de Códigos QR ZXing.org e IronBarcode: Una Comparación Completa: Figura 2 - ZXing Web desarrollada por Google

  2. Haga clic en el botón "Elegir archivo" para seleccionar un archivo de imagen de código QR.

  3. Una vez seleccionada la imagen, pulse el botón "Enviar".

    ZXing.org QR Code Library e IronBarcode: Una comparación exhaustiva: Figura 3 - Decodificación de ZXing

  4. Si se encuentra un código reconocible, la herramienta descodificará el código QR y mostrará la información resultante.

    La biblioteca es fácil de usar y puede integrarse en aplicaciones web, móviles y de escritorio.

    ZXing ha sido ampliamente adoptado y cuenta con una amplia comunidad de desarrolladores que contribuyen a su desarrollo y le prestan apoyo.

    La biblioteca recopila información sobre el dispositivo, como el modelo y la versión del sistema operativo, lo que puede considerarse un riesgo potencial para la seguridad.

    Además, algunos han expresado su preocupación por la propiedad y el control de la biblioteca, ya que su mantenimiento no corre a cargo de una organización independiente.

    En general, ZXing es una biblioteca potente y versátil para la generación y descodificación de códigos de barras, con una amplia adopción y apoyo por parte de la comunidad.

    Para generar un código QR con ZXing, por ejemplo, los desarrolladores sólo tienen que escribir unas pocas líneas de código:


    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");

    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");
Imports ZXing
	Imports ZXing.QrCode

	' Generate a QR code
	Private writer As New BarcodeWriter()
	writer.Format = BarcodeFormat.QR_CODE
	Dim qrCode As Bitmap = writer.Write("Hello, ZXing!")
$vbLabelText   $csharpLabel

Para descodificar un código QR utilizando el proyecto ZXing, los desarrolladores pueden utilizar el siguiente código:


    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;

    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;
Imports ZXing
	Imports ZXing.QrCode

	' Decode a QR code
	Private reader As New BarcodeReader()
	Private result As Result = reader.Decode(qrCode)
	Private text As String = result.Text
$vbLabelText   $csharpLabel

Biblioteca de códigos QR de ZXing.org e IronBarcode: una comparación exhaustiva: Figura 4 - Generador de códigos QR

Biblioteca de Códigos QR de ZXing.org e IronBarcode: Una Comparación Exhaustiva: Figura 5 - Archivos de Códigos QR Mostrados

Presentación de IronBarcode

IronBarcode es una potente librería de generación y escaneo de códigos de barras para desarrolladores .NET, creada por Iron Software.

IronBarcode proporciona una API fácil de usar que permite a los desarrolladores generar y escanear varios tipos de códigos de barras, incluidos los códigos QR, códigos Data Matrix y códigos de barras UPC-A.

La biblioteca IronBarcode fue creada por Iron Software como una forma de ampliar la funcionalidad de la biblioteca ZXing.NET.

ZXing.org Biblioteca de Código QR e IronBarcode: Una Comparación Exhaustiva: Figura 6 - Formatos de Código de Barras Soportados

También han añadido nuevas características y funcionalidades, como la capacidad de generar códigos de barras 2D, códigos de barras PDF417 y la posibilidad de leer códigos de barras directamente desde archivos de imagen.

A continuación se muestra un ejemplo de cómo generar un código QR utilizando IronBarcode:


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

Biblioteca de códigos QR de ZXing.org e IronBarcode: Una comparación exhaustiva: Figura 7 - Código QR

Para escanear un código de barras con IronBarcode, puede utilizar el siguiente código:


    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a barcode
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
$vbLabelText   $csharpLabel

Librería de Código QR ZXing.org e IronBarcode: Una Comparación Integral: Figura 8 - Crear una Imagen de Código de Barras en C#

IronBarcode admite una amplia gama de tipos de códigos de barras, incluyendo 2D Barcode, UPC-A, UPC-E, EAN-8, EAN-13, Code39, Code128, PDF417 y muchos más.

Se basa en las fortalezas de la biblioteca ZXing.NET, proporcionando un escaneo y generación de códigos de barras más rápidos y precisos, además de agregar nuevas funciones y funcionalidades.

Cómo utilizar IronBarcode

A continuación se indican algunos pasos para utilizar IronBarcode:

Paso 1: Instalar la librería IronBarcode

Para utilizar IronBarcode en su proyecto .NET, primero debe instalar la biblioteca IronBarcode mediante NuGet. Para ello, ejecute el siguiente comando en la consola del gestor de paquetes NuGet:


    Install-Package IronBarCode

Paso 2: Generar un código de barras

Para generar un código de barras con IronBarcode, puede utilizar la clase BarcodeWriter.


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

Este código crea un código QR con el texto "Hello, IronBarcode!" y lo guarda como un archivo de imagen llamado "qrcode.png".

Paso 3: Escanear un código de barras

Para escanear un código de barras usando IronBarcode, puedes usar la clase BarcodeReader.


    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a QR code
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
$vbLabelText   $csharpLabel

Este código lee el código QR del archivo de imagen "qrcode.png" y devuelve el texto codificado en el código de barras.

Biblioteca de códigos QR de ZXing.org e IronBarcode: Una comparación exhaustiva: Figura 9 - Escanear un código de barras

Paso 4: Personalizar el código de barras

IronBarcode proporciona una serie de opciones de personalización que le permiten controlar la apariencia y el comportamiento de la implementación de lectura de códigos de barras generada.

A continuación se muestra un ejemplo de cómo personalizar un código QR utilizando IronBarcode para la implementación de escaneo de códigos de barras:


    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Customize a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.ResizeTo(400, 400)
	barcode.SetMargins(20)
	barcode.SetForegroundColor(Color.Black)
	barcode.SetBackgroundColor(Color.White)
	barcode.AddCaptionAbove("Scan me with your smartphone!")
	barcode.AddImageLogo("logo.png", 80, 80)
	barcode.SaveAsImage("qrcode.png")
$vbLabelText   $csharpLabel

Este código genera un código QR con el texto "Hello, IronBarcode!" y lo personaliza redimensionándolo a 400x400 píxeles, añadiendo márgenes de 20 píxeles, estableciendo el color de primer plano en negro y el color de fondo en blanco, añadiendo un título sobre el código de barras y añadiendo una imagen de logotipo.

Qué puede hacer IronBarcode

IronBarcode se basa en la biblioteca de código abierto ZXing, pero amplía sus capacidades para admitir una gama más amplia de tipos de códigos de barras, incluidos los códigos QR, Code 128, Code 39, EAN-13, EAN-8, UPC-A y muchos más.

Estas son algunas de las cosas que IronBarcode puede hacer:

Generar códigos de barras

IronBarcode puede generar fácilmente códigos de barras de varios tipos y estilos, incluidos códigos de barras lineales y 2D, con funciones personalizables como colores, texto y superposiciones de imágenes. El siguiente fragmento de código genera un código QR:


    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode)
	barcode.SaveAsJpeg("QRCode.jpg")
$vbLabelText   $csharpLabel

Biblioteca de Códigos QR de ZXing.org e IronBarcode: Una Comparación Integral: Figura 10 - Imagen de Código de Barras Code128 para Escanear

Leer códigos de barras

IronBarcode también proporciona un potente escáner de códigos de barras que puede leer códigos de barras de imágenes, PDF y secuencias de cámaras en directo. El siguiente código lee un Código QR desde un archivo de imagen:


    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);

    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);
Dim barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode)
	Console.WriteLine(barcode.Text)
$vbLabelText   $csharpLabel

Biblioteca de códigos QR ZXing.org e IronBarcode: una comparación exhaustiva: Figura 11 - Lectura de códigos de barras almacenados dentro de PDF

Validar códigos de barras

IronBarcode también puede validar códigos de barras para garantizar que son válidos y pueden ser escaneados por otros lectores de códigos de barras. El siguiente fragmento de código valida un código de barras Código 128:


    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }

    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }
Dim barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128)
	If barcode.IsValid Then
		Console.WriteLine("Barcode is valid.")
	Else
		Console.WriteLine("Barcode is invalid.")
	End If
$vbLabelText   $csharpLabel

Convertir códigos de barras

IronBarcode puede convertir códigos de barras de un formato a otro, como convertir un código de barras Código 39 en un código QR. El siguiente fragmento de código convierte un código de barras Código 39 en un código QR:


    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39)
	Dim qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode)
	qrCode.SaveAsJpeg("QRCode.jpg")
$vbLabelText   $csharpLabel

Por qué IronBarcode es mejor que ZXing Decoder Online

Estas son algunas de las formas en las que IronBarcode es mejor que ZXing:

  1. Rendimiento: IronBarcode es más rápido que ZXing, lo que lo convierte en una excelente opción para aplicaciones web que requieren escaneo y generación de códigos de barras de alta velocidad.

  2. Facilidad de uso: La API de IronBarcode es sencilla e intuitiva, lo que facilita la creación y escaneo de códigos de barras en solo unas pocas líneas de código. Por otro lado, la API de ZXing puede resultar compleja y difícil de usar para los principiantes.

  3. Calidad del resultado: IronBarcode produce códigos de barras de alta calidad que son fáciles de leer, incluso en tamaños pequeños. En cambio, los códigos de barras de ZXing a veces pueden ser difíciles de leer, sobre todo en tamaños pequeños.

  4. Formatos compatibles: IronBarcode admite una amplia gama de formatos de código de barras, incluidos UPC-A, código de barras 2D, y más. En comparación, el proyecto ZXing sólo admite un número limitado de formatos de códigos de barras.

  5. Licencia: IronBarcode ofrece un modelo de licencia flexible que permite a los desarrolladores utilizar la biblioteca de forma gratuita o comprar una licencia según sus necesidades. En cambio, la licencia de ZXing es restrictiva, lo que dificulta a los desarrolladores el uso de la biblioteca en proyectos comerciales.

    ZXing.org QR Code Library e IronBarcode: Una Comparación Exhaustiva: Figura 12 - Lectura de Códigos de Barras de una Imagen TIFF de Múltiples Marcos

    IronBarcode es una librería superior a ZXing en cuanto a rendimiento, facilidad de uso, calidad de salida, formatos soportados y licencias.

    ¿Desea probar IronBarcode y ver cómo puede mejorar sus capacidades de lectura y generación de códigos de barras? Estamos emocionados de ofrecerle una prueba gratuita de IronBarcode para que pueda probar sus características y beneficios.

    Durante su periodo de prueba, tendrá acceso completo a todas las potentes funciones de IronBarcode, incluida la compatibilidad con una amplia gama de formatos de códigos de barras, opciones de personalización avanzadas y una integración perfecta con sus proyectos existentes.

    Para iniciar la prueba, sólo tiene que visitar nuestro sitio web y descargar el paquete IronBarcode. Luego tendrás una prueba gratuita para explorar todo lo que IronBarcode tiene para ofrecer y ver de primera mano cómo puede optimizar tus flujos de trabajo de escaneo y generación de códigos de barras.

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 en las pruebas de productos, el desarrollo de productos y la investigación, Jordi añade un inmenso valor a la mejora continua de los productos. La variada experiencia le mantiene desafiado y comprometido, y dice que es uno de sus aspectos favoritos de trabajar con Iron Software. Jordi creció en Miami, Florida, y estudió Informática y Estadística en la Universidad de Florida.
< ANTERIOR
Cómo escanear códigos de barras en ZXing para desarrolladores de C#.
SIGUIENTE >
Comparación entre IronBarcode y QrCoder C#