USO DE IRONQR

Cómo generar código QR utilizando QRCoder comparar a IronQR en .NET 6

Actualizado 29 de abril, 2024
Compartir:

Generación de códigos QR en C#

La creación de códigos QR en aplicaciones C# es un requisito común para los desarrolladores, especialmente para aplicaciones que implican la identificación de productos, la venta de entradas o compartir URL y otros datos fácilmente. Hay varias bibliotecas disponibles para generar códigos QR en C#. Dos opciones destacables son QRCoder y IronQR. Aquí, exploraremos ambas, comparando sus capacidades, facilidad de uso, rendimiento y otros factores relevantes para los desarrolladores que trabajan con .NET 6. En este artículo, profundizaremos en una comparación detallada de estas bibliotecas, examinando sus características, facilidad de uso, licencia y más, junto con ejemplos de código para ilustrar su uso.

Cómo generar código QR utilizando QRCoder comparar a IronQR en .NET 6

  1. Crear un nuevo proyecto de Visual Studio para generar un código QR
  2. Instale los paquetes NuGet de QRCoder e IronQR para comparar
  3. Crear códigos QR con QRCoder e IronQR
  4. Opciones de personalización con QRCoder e IronQR

QRCoder

QRCoder es una librería de código abierto escrita en C# e implementación de Códigos QR que permite generar Códigos QR según la norma ISO/IEC 18004 en cualquier aplicación .NET. Es una biblioteca ligera y fácil de usar, sin dependencias de otras bibliotecas o pilas de red.

Estas son las principales características y ventajas de QRCoder:

1. 1. Facilidad de uso

C# QRCoder ofrece una API sencilla e intuitiva, que facilita a los desarrolladores la generación de códigos QR/texto de código QR con el mínimo esfuerzo. Su sencillez permite a desarrolladores de todos los niveles integrar rápidamente la generación de códigos QR en sus proyectos.

2. Amplias opciones de personalización

Una de las características más destacadas de QRCoder es su capacidad para personalizar los códigos QR según requisitos específicos. Los desarrolladores pueden ajustar parámetros como el nivel de corrección de errores, el tamaño, el color e incluso incrustar logotipos o imágenes dentro del código QR.

3. Múltiples formatos de codificación

QRCoder admite varios formatos de codificación, lo que permite a los desarrolladores codificar distintos tipos de datos en códigos QR. Ya se trate de texto sin formato, URL, información de contacto o credenciales Wi-Fi, QRCoder puede manejar una amplia gama de formatos de datos.

4. Resultados de alta calidad

Los códigos QR generados por C# QRCoder son de alta calidad, lo que garantiza su legibilidad y fiabilidad en diferentes dispositivos y condiciones de escaneado. Esta fiabilidad es crucial para las aplicaciones en las que los códigos QR sirven de puente entre las interacciones físicas y digitales.

5. Código abierto y desarrollo activo

C# QRCoder es un proyecto de código abierto, lo que permite a los desarrolladores contribuir a su desarrollo y garantizar mejoras y actualizaciones continuas. Este compromiso activo con la comunidad fomenta la innovación y garantiza que la biblioteca siga siendo relevante en el panorama tecnológico en constante evolución.

IronQR

IronQR es una potente biblioteca de C# QR Code desarrollada y mantenida por **Software de hierro. Permite a los ingenieros de software de C# detectar, leer y crear códigos QR en aplicaciones y sitios web .NET. Estas son algunas de las principales características de IronQR:

Generación de códigos QR

IronQR permite una gran personalización Generación de códigos QR. Puedes crear códigos QR con varias opciones, como redimensionamiento, márgenes, bordes y recoloración.

using IronQr;
using IronSoftware.Drawing;
//  Preparar un objeto Código QR
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
//  Guardar código QR en la memoria
AnyBitmap myQrImage = theQrGen.Save();
//  Guardar la imagen del código QR en el disco
myQrImage.SaveAs("awesome.png");
using IronQr;
using IronSoftware.Drawing;
//  Preparar un objeto Código QR
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
//  Guardar código QR en la memoria
AnyBitmap myQrImage = theQrGen.Save();
//  Guardar la imagen del código QR en el disco
myQrImage.SaveAs("awesome.png");
Imports IronQr
Imports IronSoftware.Drawing
'  Preparar un objeto Código QR
Private theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
'  Guardar código QR en la memoria
Private myQrImage As AnyBitmap = theQrGen.Save()
'  Guardar la imagen del código QR en el disco
myQrImage.SaveAs("awesome.png")
VB   C#

Lectura de códigos QR

IronQR utiliza un modelo avanzado de aprendizaje automático para la detección de códigos QR. Este modelo garantiza una lectura precisa y rápida de los códigos QR. IronQR es compatible con lectura de códigos QR a partir de varios formatos de imagen, como JPG, PNG, SVG, bmp e imágenes multipágina como gif y tiff.

using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
//  Leer código QR
var inputBmp = AnyBitmap.FromFile("awesome.png");
//  Cargar la imagen en QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
//  Crear el objeto QR Reader
QrReader reader = new QrReader();
//  Leer la entrada y obtener todos los códigos QR incrustados
IEnumerable<QrResult> results = reader.Read(imageInput);
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
//  Leer código QR
var inputBmp = AnyBitmap.FromFile("awesome.png");
//  Cargar la imagen en QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
//  Crear el objeto QR Reader
QrReader reader = new QrReader();
//  Leer la entrada y obtener todos los códigos QR incrustados
IEnumerable<QrResult> results = reader.Read(imageInput);
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
'  Leer código QR
Private inputBmp = AnyBitmap.FromFile("awesome.png")
'  Cargar la imagen en QrImageInput
Private imageInput As New QrImageInput(inputBmp)
'  Crear el objeto QR Reader
Private reader As New QrReader()
'  Leer la entrada y obtener todos los códigos QR incrustados
Private results As IEnumerable(Of QrResult) = reader.Read(imageInput)
VB   C#

Compatibilidad multiplataforma

  1. Escritorio: Funciona con aplicaciones de escritorio de Windows (WPF Y MAUI).
  2. Móvil: Compatible con Xamarin y MAUI.
  3. Web: Compatible con Blazor y WebForms.
  4. Consola: Entornos de aplicaciones y bibliotecas.
  5. Nube: Docker, Azure y AWS.

Codificación de datos

Puede codificar varios tipos de datos en los códigos QR, como texto, URL, bytes y números.

Corrección de errores

IronQR proporciona mensajes de error detallados y opciones personalizadas de corrección de errores.

IronQR cuenta con la confianza de millones de ingenieros de todo el mundo por su fiabilidad y facilidad de uso. Para empezar a utilizar IronQR, puede instalarlo a través de NuGet.

Paso 1: Crear un nuevo proyecto de Visual Studio para generar un código QR

Para empezar con el código, creemos un archivo Visual Studio Proyecto. Abra Microsoft Visual Studio 2022 y seleccione la opción "Crear un nuevo proyecto".

Cómo generar código QR utilizando QRCoder comparar a IronQR en .NET 6: Figura 1 - Abra Visual Studio y haga clic en "Crear un nuevo proyecto" opción

Seleccione la plantilla de aplicación Consola de la lista de plantillas

Cómo generar código QR utilizando QRCoder comparar a IronQR en .NET 6: Figura 2 - Seleccione el tipo de proyecto como "Consola App".

A continuación, indique el nombre del proyecto y los nombres de las soluciones. Seleccione la ruta para almacenar los archivos del proyecto

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figura 3 - Configure su proyecto especificando el nombre del proyecto, la ubicación y el nombre de la solución, luego haga clic en Siguiente.

Seleccione la versión .NET necesaria. En el momento de escribir este artículo, utilizaré el último framework .NET 8.

Cómo Generar código QR usando QRCoder comparar a IronQR en .NET 6: Figura 4 - Seleccione la última versión de .NET Framework y haga clic en el botón Crear.

Una vez pulsado el botón crear, el proyecto queda creado y listo para su desarrollo.

Paso 2: Instalar los paquetes NuGet QRCoder e IronQR

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

Cómo Generar código QR utilizando QRCoder comparar con IronQR en .NET 6: Figura 5 - Instalar QRCoder utilizando el paquete NuGet de gestión de soluciones mediante la búsqueda de "QRCoder" en la barra de búsqueda de NuGet Package Manager, a continuación, seleccione el proyecto y haga clic en el botón Instalar.

O instálelo desde la consola del gestor de paquetes NuGet utilizando el siguiente comando

dotnet add package QRCoder --version 1.4.3
dotnet add package QRCoder --version 1.4.3
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package QRCoder --version 1.4.3
VB   C#

El paquete NuGet de QRCoder está disponible en el sitio web de NuGet aquí

Cómo generar código QR utilizando QRCoder en comparación con IronQR en .NET 6: Figura 6 - QRCoder paquete NuGet

En IronQR también puede instalarse de forma similar utilizando el gestor de paquetes NuGet de Visual Studio, que se muestra a continuación.

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figura 7 - Instale IronQR utilizando el Gestor de Paquetes NuGet para Solución buscando "IronQR" en la barra de búsqueda del Gestor de Paquetes NuGet, luego seleccione el proyecto y haga clic en el botón Instalar.

También desde la consola del gestor de paquetes NuGet, utilice el siguiente comando

dotnet add package IronQR --version 2024.4.1
dotnet add package IronQR --version 2024.4.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronQR --version 2024.4.1
VB   C#

Cómo generar código QR utilizando QRCoder comparar con IronQR en .NET 6: Figura 8 - IronQR NuGet Package

Paso 3: Crear códigos QR con QRCoder e IronQR

La creación de códigos QR en las dos bibliotecas requiere un código sencillo, vamos a comprobarlo

QRCoder

El siguiente código muestra cómo generar nuestro primer código QR utilizando QRCoder

using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
    public static void Main()
    {
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
            {
                var qrCodeImage = qrCode.GetGraphic(20);
                var file = Image.FromStream(new MemoryStream(qrCodeImage));
                file.Save("QrCoderDemo1.png");
            }
        }
    }
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
    public static void Main()
    {
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
            {
                var qrCodeImage = qrCode.GetGraphic(20);
                var file = Image.FromStream(new MemoryStream(qrCodeImage));
                file.Save("QrCoderDemo1.png");
            }
        }
    }
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
	Public Shared Sub Main()
			Using qrGenerator As New QRCodeGenerator()
			Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
			Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
				Dim qrCodeImage = qrCode.GetGraphic(20)
				Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
				file.Save("QrCoderDemo1.png")
			End Using
			End Using
			End Using
	End Sub
End Class
End Namespace
VB   C#

Código Explicación

  1. Creamos QRCodeGenerator y llamamos al método CreateQrCode para generar el gráfico del código QR
  2. Luego usamos el método QRCoder.BitmapByteQRCode para obtener la matriz de bytes del método GetGraphic
  3. A continuación, guardamos el flujo de bytes como imagen utilizando el método Image.FromStream
  4. El código QR de salida puede verse a continuación

Salida

Cómo generar código QR usando QRCoder en comparación con IronQR en .NET 6: Figura 9 - Salida: Imagen de código QR generada usando la librería QRCoder.

IronQR

El siguiente código muestra cómo generar un código QR utilizando IronQR:

using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
    public static void Main()
    {
            //  Preparar un objeto Código QR
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            //  Guardar código QR en la memoria
            AnyBitmap myQrImage = theQrGen.Save();
            //  Guardar la imagen del código QR en el disco
            myQrImage.SaveAs("awesome.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
{
public class Program
{
    public static void Main()
    {
            //  Preparar un objeto Código QR
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            //  Guardar código QR en la memoria
            AnyBitmap myQrImage = theQrGen.Save();
            //  Guardar la imagen del código QR en el disco
            myQrImage.SaveAs("awesome.png");
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Namespace QrCodeWithIronQR
Public Class Program
	Public Shared Sub Main()
			'  Preparar un objeto Código QR
			Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
			'  Guardar código QR en la memoria
			Dim myQrImage As AnyBitmap = theQrGen.Save()
			'  Guardar la imagen del código QR en el disco
			myQrImage.SaveAs("awesome.png")
	End Sub
End Class
End Namespace
VB   C#

Como ya se puede ver la diferencia en la cantidad de código. La generación de código IronQR requiere menos código.

Código Explicación

  1. Creamos el código QR usando QrWriter.Write() y pasándole el contenido.
  2. A continuación, guarde el código QR en la memoria mediante el botón Guardar() método.
  3. Por último, guardamos la imagen utilizando SaveAs() método;

Salida

La salida tiene una marca de agua IronQR, ya que estoy utilizando una versión de prueba de la biblioteca. Con una versión con licencia, esto se eliminará.

Cómo generar código QR utilizando QRCoder comparar a IronQR en .NET 6: Figura 10 - Salida: Imagen de código QR generada usando IronQR

Paso 4: Opciones de personalización con QRCoder y IronQR

Ambas bibliotecas admiten opciones de personalización. Veamos algunas opciones disponibles

Podemos establecer los colores del código QR en QRCoder como a continuación:

using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
    public static void Main()
    {
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
            {                
                var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); //  también puede utilizar la notación html hexadecimal
                var file = Image.FromStream(new MemoryStream(qrCodeImage));
                file.Save("QrCoderDemo1.png");
            }
        }
    }
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
    public static void Main()
    {
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
            {                
                var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); //  también puede utilizar la notación html hexadecimal
                var file = Image.FromStream(new MemoryStream(qrCodeImage));
                file.Save("QrCoderDemo1.png");
            }
        }
    }
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
	Public Shared Sub Main()
			Using qrGenerator As New QRCodeGenerator()
			Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
			Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
				Dim qrCodeImage = qrCode.GetGraphic(20, (255,0,0), (0,255, 0)) '  también puede utilizar la notación html hexadecimal
				Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
				file.Save("QrCoderDemo1.png")
			End Using
			End Using
			End Using
	End Sub
End Class
End Namespace
VB   C#

Código Explicación

  1. Creamos QRCodeGenerator y llamamos al método CreateQrCode para generar el gráfico del código QR
  2. A continuación, utilizamos el QRCoder.BitmapByteQRCode() para obtener la matriz de bytes del método GetGraphic
  3. En el GetGraphic podemos establecer los colores de fondo y de línea. Hemos utilizado el rojo [255,0,0] R,G,B para el color de las líneas y Verde [0,255,0] por antecedentes.
  4. Luego guardamos el flujo de bytes como imagen usando Image.FromStream() método
  5. El código QR de salida puede verse a continuación

Salida

Cómo generar código QR usando QRCoder en comparación con IronQR en .NET 6: Figura 11 - Salida: Colorida imagen de código QR generada usando las características de personalización de QRCoder's.

Podemos establecer colores para IronQR generación de código QR como el siguiente código:

using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
public class Program
{
    public static void Main()
    {
            //  Configurar opciones
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
            //  Crear QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
            //  Opciones de estilo
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, //  px
                Margins = 10, //  px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };
            //  Guardar código QR
            AnyBitmap qrImage = myQr.Save(style);
            //  Guardar código QR en disco local
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWithIronQR
public class Program
{
    public static void Main()
    {
            //  Configurar opciones
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
            //  Crear QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
            //  Opciones de estilo
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, //  px
                Margins = 10, //  px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };
            //  Guardar código QR
            AnyBitmap qrImage = myQr.Save(style);
            //  Guardar código QR en disco local
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
namespace QrCodeWithIronQR Public Class Program
	Public Shared Sub Main()
			'  Configurar opciones
			Dim options As New QrOptions(QrErrorCorrectionLevel.Medium, 20)
			'  Crear QR
			Dim myQr As QrCode = QrWriter.Write("IronQR Generation Demo 1", options)
			'  Opciones de estilo
			Dim logoBmp As New AnyBitmap("logo.png")
			Dim style As New QrStyleOptions With {
				.BackgroundColor = Color.Aqua,
				.Dimensions = 300,
				.Margins = 10,
				.Color = Color.Red,
				.Logo = New QrLogo With {
					.Bitmap = logoBmp,
					.Width = 100,
					.Height = 100,
					.CornerRadius = 2
				}
			}
			'  Guardar código QR
			Dim qrImage As AnyBitmap = myQr.Save(style)
			'  Guardar código QR en disco local
			qrImage.SaveAs("advancedQr.png")
	End Sub
End Class
}
VB   C#

Con IronQR hay muchas opciones de personalización. En el programa anterior hemos intentado personalizar el color de fondo, el color del código QR, los márgenes. También podemos fijar las dimensiones.

Código Explicación

  1. En primer lugar, creamos el objeto de opción para establecer el nivel de corrección de errores
  2. A continuación preparamos el código QR con QrWriter.Write() método
  3. A continuación, establecemos las opciones de estilo con QrStyleOptions
  4. Establecemos el color de fondo, el color de primer plano, los márgenes, las dimensiones y también un logotipo para el código QR
  5. A continuación, guardamos la imagen del código QR en el disco local.

Salida

Cómo generar código QR usando QRCoder comparado con IronQR en .NET 6: Figura 12 - Salida: Colorida imagen de código QR generada usando IronQR y sus características de personalización.

Licencias

QRCoder es un paquete basado en la licencia MIT y desarrollado con la ayuda de la comunidad. Este paquete es adecuado para proyectos de bajo presupuesto. El usuario tiene que esperar a que la comunidad resuelva los problemas o puede arreglar y empujar el código al repositorio Git con pull requests aprobadas.

IronQR que se utilizarán en las aplicaciones. Cuenta con el respaldo de Iron Software.

IronQR que se puede obtener. La clave obtenida debe colocarse aquí en el archivo appSettings.json:

{
   "IronQR.License.LicenseKey":"myKey"
}
{
   "IronQR.License.LicenseKey":"myKey"
}
If True Then
   "IronQR.License.LicenseKey":"myKey"
End If
VB   C#

Conclusión

Elegir entre C# QRCoder y IronQR depende en última instancia de los requisitos específicos de su proyecto. Si necesitas una librería de generación de códigos QR gratuita y de código abierto con muchas opciones de personalización, entonces C# QRCoder podría ser la opción preferida debido a su simplicidad y amplias opciones de personalización.

Si necesita una biblioteca de nivel empresarial que admita no sólo la generación de códigos QR con opciones de personalización, sino también la lectura de códigos QR, entonces IronQR sería la elección definitiva. Así que en última instancia, con la biblioteca IronQR, sus muchos beneficios y funcionalidad de apoyo de **Software de hierro los desarrolladores pueden escribir aplicaciones empresariales con facilidad y tranquilidad.

< ANTERIOR
Cómo crear una aplicación generadora de códigos QR en C#
SIGUIENTE >
Cómo generar un código QR en VB .NET

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

Descarga gratuita de NuGet Descargas totales: 10,333 Ver licencias >
123