C# Generador de códigos QR para .NET

Chaknith Bin
Chaknith Bin
5 de noviembre, 2018
Actualizado 10 de diciembre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Como habrá podido leer en el tutorial introductorio Crear un código de barras, crear, estilizar y exportar códigos de barras como imágenes con IronBarcode es increíblemente sencillo y a menudo puede conseguirse con una sola línea de código.

En este ejemplo, profundizaremos en los códigos QR, cada vez más populares en las aplicaciones industriales y también en el comercio minorista.

Instalar biblioteca generadora de códigos QR en C#

Comience a usar IronBarcode en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer

Antes de comenzar, necesitamos instalar el paquete NuGet de BarCode.

Install-Package BarCode

https://www.nuget.org/packages/BarCode/ Como alternativa, el IronBarCode.Dll puede ser descargado y añadido a su proyecto como una referencia desde [.NET Barcode DLL].

Importación de NameSpaces

Para este tutorial necesitamos asegurarnos de que nuestros archivos de clase hacen referencia a IronBarCode y también a algunos ensamblados normales del sistema.

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;


Crear un código QR con 1 línea de código

Nuestro primer ejemplo nos muestra cómo crear un código de barras normalizado con un texto sencillo, un diámetro cuadrado de 500 píxeles y una corrección de errores media.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-1.cs
using IronBarCode;

// Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png");

La corrección de errores nos permite definir lo fácil que será leer un código QR en circunstancias reales. Los niveles más altos de corrección de errores crean códigos QR más grandes, con más píxeles y más complejos.

C# Crear Imagen de Código QR

Añadir un logotipo

En el segundo ejemplo, veremos un caso de uso en el que una empresa desea añadir un logotipo a su código QR, algo que vemos con frecuencia hoy en día. Usando el método QRCodeWriter.CreateQRCodeWithLogo, en el ejemplo de código de abajo puedes ver lo fácil que es.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-2.cs
using IronBarCode;
using IronSoftware.Drawing;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Logo will automatically be sized appropriately and snapped to the QR grid.
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");

Este ejemplo añade el logotipo de Visual Studio al código de barras. Lo ajusta automáticamente a un tamaño adecuado en el que el código puro siga siendo legible y alinea ese logotipo con la cuadrícula del código QR, para que tenga el aspecto adecuado. La siguiente línea de código colorea el código de barras de verde oscuro. Sin embargo, no decolora el logotipo.

C# Create QR Code With Logo Image

Guardar como imagen PDF o HTML

Por último, guardamos ese QR como PDF. La última línea de código abre el PDF en su navegador PDF predeterminado para su comodidad.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-3.cs
using IronBarCode;

// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);

// Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");

// Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");

Verificación de códigos QR

Al añadir logotipos a los códigos QR y cambiar los colores, queremos asegurarnos de que nuestro QR sigue siendo legible.

Al usar el método GeneratedBarcode.Verify(), podemos comprobar si nuestro código de barras sigue siendo legible.

En el siguiente ejemplo de código, veremos que cambiar un código QR a azul claro en realidad lo hace ilegible. Lo detectamos en el código y preferimos el azul oscuro.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-4.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;

// Verifying QR Codes
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode MyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);

if (!MyVerifiedQR.Verify())
{
    Console.WriteLine("\t LightBlue is not dark enough to be read accurately.  Lets try DarkBlue");
    MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");

// open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html");

Las últimas líneas de código exportan el código QR como un archivo HTML independiente sin activos y, a continuación, abre ese archivo HTML en tu navegador predeterminado.

C# leer y escribir QR

Lectura y escritura de datos binarios

Los códigos QR son un formato excelente para tratar datos binarios. A veces, los datos binarios ocupan menos espacio o son más apropiados que los textos.

En este ejemplo, codificaremos algunos datos binarios de una cadena, los escribiremos en un código de barras en formato QR y luego los leeremos como una matriz de bits de datos binarios. Observará que esta característica no es común a muchas bibliotecas de códigos de barras, lo que hace que IronBarcode sea única en este sentido.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-5.cs
using IronBarCode;
using System;
using System.Linq;

// Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");

// READ QR with Binary Content
var MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue))
{
    Console.WriteLine("\t Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Corrupted Data");
}
C# leer y escribir datos binarios como un código QR

En resumen, la Biblioteca de Códigos de Barras C# está específicamente diseñada teniendo en cuenta el uso real de códigos QR. No sólo lee códigos QR con rapidez y precisión, sino que nos permite darles estilo, añadir logotipos, verificar códigos de barras y codificarlos con datos binarios.

Lectura de códigos QR

Para ahorrarte saltos entre tutoriales añadiré un ejemplo de código para mi forma favorita de leer códigos QR usando IronBarcode.

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-6.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });
if (result != null)
{
    Console.WriteLine(result.First().Value);
}

También existe una forma más avanzada con más control por parte del desarrollador:

:path=/static-assets/barcode/content-code-examples/tutorials/csharp-qr-code-generator-7.cs
using IronBarCode;
using System;
using System.Linq;

BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.All,
    Multithreaded = false,
    MaxParallelThreads = 0,
    CropArea = null,
    UseCode39ExtendedMode = false,
    RemoveFalsePositive = false,
    ImageFilters = null
};

BarcodeResults result = BarcodeReader.Read("QR.png", options);
if (result != null)
{
    Console.WriteLine(result.First().Value);
}

Avanzar

Para obtener más información sobre este ejemplo y trabajar con códigos QR en C#, le animamos a bifurcarlo en nuestra página de GitHub o descargar el código fuente de nuestro sitio.

Descargas de código fuente

Descargue este C# Tutorial y DLL del Generador de Códigos QR.

Documentación adicional

También puede encontrar de interés las clases QRCodeWriter y BarcodeReader dentro de la Referencia de API.

Documentan el conjunto completo de funciones de IronBarcode, un Generador de Códigos de Barras VB.NET, que no podría incluirse en un solo tutorial.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.