Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En este tutorial, compararemos dos librerías C# ampliamente utilizadas - IronBarcode y QrCoder - para trabajar con códigos QR y códigos de barras.
Empecemos con una breve introducción a ambas bibliotecas:
IronBarcode es una biblioteca creada y mantenida por Iron Software que permite a los ingenieros de software de C# leer y escribir códigos de barras y códigos QR en aplicaciones y sitios web .NET. Está disponible en NuGet para todos los marcos .NET y .NET Core. IronBarcode sólo requiere una línea de código para leer o escribir códigos de barras.
QRCoder es una sencilla librería en C# que permite crear códigos QR. No depende de otras bibliotecas y está disponible en NuGet en las versiones .NET Framework y .NET Core PCL.
Ambas bibliotecas deben tener las siguientes características principales:
Generar código de barras
Implementaremos todas estas funciones de ambas bibliotecas y compararemos su rendimiento.
En primer lugar, instalemos ambas bibliotecas en nuestro proyecto de Visual Studio. Dado que ambas bibliotecas tienen sus propios paquetes NuGet, las instalaremos a través de la consola del gestor de paquetes NuGet.
Para instalar IronBarcode, escriba el siguiente comando en la consola del gestor de paquetes:
Install-Package BarCode
Esto instalará la librería IronBarcode en nuestro proyecto.
Instalación de IronBarcode
Escriba el siguiente comando en la consola del gestor de paquetes
Install-Package QRCoder
Esto instalará la librería QrCoder en nuestro proyecto.
Instalación de QrCoder
Ahora, vamos a generar nuestro primer código QR utilizando ambas librerías.
El siguiente código generará un código QR.
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")
qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode")
stopwatch.Stop()
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
La instancia Stopwatch
se crea para medir el tiempo de ejecución del programa y así analizar la eficiencia de la librería.
Código de barras generado a partir de IronBarcode
IronBarcode tarda 3503 ms en generar y guardar un código QR.
Tiempo de ejecución de IronBarcode para generar nuevos códigos de barras
El siguiente código de ejemplo generará un código QR utilizando QrCoder.
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
Dim qrGenerator As New QRCodeGenerator()
Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)
Dim qrCode As New QRCode(qrCodeData)
Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)
qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
QrCoder no proporciona una función integrada para guardar el código QR como una imagen. Sin embargo, podemos guardarlo parseando el QrCoder en un objeto Bitmap. A continuación, podemos guardar el código QR utilizando la función de guardar proporcionada por Bitmap.
Código de barras generado por QrCoder
QrCoder tarda 592 ms en generar y guardar un código QR.
El tiempo que tardó QrCoder en generar un nuevo código de barras
El tiempo de ejecución de IronBarcode es de 3503 ms, mientras que QrCoder sólo tarda 592 ms. Esto hace que QrCoder sea mejor que IronBarcode en términos de rendimiento.
Generar códigos QR es mucho más sencillo en IronBarcode, ya que sólo necesitamos escribir dos líneas de código. Con la biblioteca QrCoder, se necesitan cinco líneas de código.
IronBarcode también proporciona una función integrada para guardar los códigos QR generados en un archivo, mientras que QrCoder no lo hace. Tenemos que crear un objeto bitmap para guardar el código QR en un archivo. Esto requiere que creemos cuatro objetos para generar códigos QR usando QrCoder. Sólo necesitamos crear un objeto en IronBarcode para hacer lo mismo.
A continuación, generaremos códigos de barras utilizando ambas bibliotecas.
El siguiente código generará un código de barras utilizando IronBarcode:
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)
barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
Código de barras generado con IronBarcode
A continuación se muestra el tiempo de ejecución necesario para generar un código de barras con IronBarcode:
Tiempo de generación de códigos de barras de IronBarcode
Se tarda 3756 ms o 3,76 seg en generar un código de barras.
Vale la pena señalar que la biblioteca QrCoder no proporciona la funcionalidad para crear códigos de barras. Por lo tanto, si necesita crear códigos de barras, IronBarcode es la mejor opción.
En cuanto al escaneado de códigos QR, veamos qué biblioteca es la mejor opción.
El siguiente código leerá un código QR utilizando IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Extracted text from QR Code is: " & result.Text)
Next result
End If
IronBarcode devuelve un Enumerable
como resultado de la lectura de códigos QR. Necesitamos recorrer el Enumerable
para recuperar cada resultado. Esta función es beneficiosa para leer códigos QR de un documento o de una imagen que tenga más de un código QR.
El tiempo que tarda IronBarcode en leer/escanear todos los códigos QR de un documento.
Tarda 3136 ms o 3,1 segundos utilizando IronBarcode.
La biblioteca QrCoder no proporciona la funcionalidad para leer o escanear un código QR.
El siguiente código escaneará el código de barras utilizando IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
Next result
End If
IronBarcode devuelve Enumerable
como resultado de la lectura de códigos de barras. Tenemos que hacer un bucle para obtener cada resultado. Es beneficioso para la lectura de código de barras de un documento o imagen que tiene más de un código de barras.
La salida generada por el código anterior es como:
El tiempo que IronBarcode tarda en escanear un código de barras contenido en un PDF o una imagen.
QrCoder Library no proporciona la funcionalidad de leer o escanear códigos QR.
Ahora, vamos a discutir las opciones de licencia de ambas bibliotecas.
IronBarcode es gratuito para el desarrollo. Sin embargo, requiere una licencia para su despliegue fuera del entorno de desarrollo de Visual Studio. Los precios de las licencias van de $599 a 2999 $ (USD). Puede obtener un descuento si adquiere el paquete completo. Iron Suite.
Consulte la [página de licencias] de IronBarcode (/csharp/barcode/licensing/) para obtener más información sobre las licencias disponibles.
QrCoder es de código abierto, por lo que no requiere ninguna licencia. Puede utilizarlo en cualquier tipo de entorno. También puedes contribuir a su código fuente si te gusta el desarrollo de código abierto.
Si sólo necesitamos la funcionalidad de generar códigos QR, QRCoder es la mejor opción a utilizar ya que es de uso gratuito y no requiere ningún pago o cuota de suscripción.
IronBarcode es una gran opción cuando requerimos funcionalidades más allá de la generación de códigos QR, como por ejemplo:
La siguiente tabla compara IronBarcode y QrCoder.
Comparación entre IronBarcode y QrCoder
IronBarcode for .NET permite a los desarrolladores leer y escribir códigos de barras y códigos QR en sus aplicaciones .NET utilizando una sola línea de código. La biblioteca admite la mayoría de los estándares de códigos de barras y códigos QR, incluidos 39/93/128, UPC A/E, EAN 8/13 y QR, entre otros. La biblioteca preprocesa automáticamente las imágenes de códigos de barras y ofrece corrección de rotación, ruido, distorsión y desviación para mejorar la velocidad y la precisión. IronBarcode es compatible con sistemas de 32 y 64 bits, todos los lenguajes .NET y diversas plataformas, como aplicaciones de escritorio, de consola, en la nube, móviles y web. También permite a los desarrolladores escribir códigos de barras y códigos QR para documentos PDF, JPG, TIFF, GIF, BMP, PNG y HTML, y modificar el color, el tamaño, la rotación y la calidad del texto. La biblioteca es segura y no utiliza servicios web ni envía datos a través de Internet. IronBarcode está disponible para una prueba gratuita y ofrece tres opciones de licencia: una versión Lite para uso individual, un paquete Professional para equipos de hasta 10 desarrolladores y un paquete Unlimited para empresas.
QRCoder es una librería C# .NET que genera códigos QR basados en ISO/IEC 18004 sin depender de otras librerías. Ofrece varias clases de representación de códigos QR, como QRCode, ArtQRCode y AsciiQRCode, entre otras. Sin embargo, no todos los renderizadores están disponibles en todos los frameworks de destino, y las versiones .NET Standard/.NET >=5.0 tienen algunas limitaciones. QRCoder es gratuito y no requiere licencia.
IronBarcode es más versátil que QRCoder, ya que ofrece compatibilidad con todas las versiones de .NET Framework, cuenta con una gama más amplia de funciones y proporciona cobertura SaaS y de redistribución OEM. IronBarcode también proporciona documentación completa y soporte 24/7, mientras que QRCoder no lo hace. IronBarcode tiene un coste de licencia, pero es razonable teniendo en cuenta las funciones y el soporte que ofrece.
IronBarcode es una biblioteca desarrollada por Iron Softwareque también ofrece otras bibliotecas útiles, como IronPDF, IronXL, IronOCRy IronWebscraper. Adquiera el Iron Suite para conseguir los cinco productos con un notable descuento.
En resumen, IronBarcode es el más adecuado para quienes necesitan trabajar tanto con códigos de barras como con códigos QR y desean crear un generador de códigos de barras, un generador de códigos QR, un lector de códigos de barras y un lector de códigos QR. Por otro lado, QRCoder es adecuado para aquellos que sólo necesitan crear un generador de códigos QR.
9 productos API .NET para sus documentos de oficina