Saltar al pie de página
USANDO IRONQR

Cómo generar códigos QR en C# con un paquete NuGet

Generar códigos QR en aplicaciones .NET nunca ha sido tan sencillo. Con el paquete NuGet adecuado, puede crear códigos QR, personalizar su apariencia y guardarlos en múltiples formatos de salida en solo unas pocas líneas de código. IronQR ofrece generación de códigos QR de nivel empresarial con soporte multiplataforma for .NET Core, .NET Framework y .NET 5-10.

Este tutorial demuestra cómo instalar el paquete NuGet IronQR y comenzar a generar códigos QR de inmediato. Ya sea que esté creando sistemas de inventario, plataformas de venta de entradas para eventos o aplicaciones de marketing, IronQR proporciona las herramientas necesarias para la implementación profesional de códigos QR.

Empiece con IronQR ahora.
green arrow pointer

¿Cómo se instala un paquete NuGet de código QR?

La instalación de IronQR a través del gestor de paquetes NuGet se realiza en cuestión de segundos. Abra la consola del Administrador de paquetes NuGet en Visual Studio y ejecute el siguiente comando, o utilice el comando dotnet add package para entornos CLI:

Install-Package IronQR

El paquete NuGet gestiona automáticamente todas las dependencias, garantizando la compatibilidad con los marcos de trabajo de destino. IronQR es compatible con .NET Framework 4.6.2+, .NET Core 2.0+ y .NET 5-10, lo que lo convierte en una biblioteca versátil para cualquier proyecto de Visual Studio.

Antes de escribir cualquier código, necesita una clave de licencia de prueba gratuita . Configúrelo al inicio de su aplicación para que todas las llamadas posteriores estén autenticadas:

using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
$vbLabelText   $csharpLabel

Con la clave de licencia instalada, su aplicación está lista para generar, leer y personalizar códigos QR sin marcas de agua en las imágenes de salida.

¿Cómo generar tu primer código QR?

Para crear su primer código QR se requiere un código mínimo. La clase QrWriter maneja la generación de códigos QR con valores predeterminados razonables que funcionan bien para la mayoría de los casos de uso:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
$vbLabelText   $csharpLabel

Salida de código QR

 Generador de códigos QR NuGet : genere códigos QR en C# con solo unas pocas líneas de código: Imagen 1 - Salida QR simple

El método QrWriter.Write() acepta datos de cadena y devuelve un objeto QrCode que contiene el símbolo QR. El método Save() convierte esto en un AnyBitmap, que admite la codificación en varios formatos de imagen o la exportación de datos vectoriales para una ruta XAML. Este enfoque funciona en Windows, macOS y Linux sin dependencias específicas de la plataforma, a diferencia de las bibliotecas que dependen de System.Drawing que son exclusivas de Windows a partir de .NET 6.

El patrón de tres líneas anterior cubre el escenario más común: codificar una cadena, obtener un mapa de bits y escribir un archivo. Para uso en producción, probablemente se pasarán cadenas URL, identificadores de producto o cargas útiles JSON en lugar de texto sin formato.

¿Cómo elegir el nivel de corrección de errores adecuado?

Los códigos QR admiten cuatro niveles de corrección de errores definidos en el estándar de código QR ISO/IEC 18004 que determinan cuánto daño puede sufrir un código sin dejar de ser escaneable. IronQR admite los cuatro niveles a través de la clase QrOptions:

Niveles de corrección de errores de códigos QR compatibles con IronQR
NivelCapacidad de recuperaciónMejor para
L (Bajo)~7%Entornos limpios, máxima densidad de datos
M (Mediano)~15%Uso general (predeterminado)
Q (Cuartil)~25%Aplicaciones industriales
H (Alto)~30%Logotipos, señalización exterior, oclusión parcial
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNivel.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNivel.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
$vbLabelText   $csharpLabel

Resultado

 Generador de códigos QR NuGet : genere códigos QR en C# con solo unas pocas líneas de código: Imagen 2 - QR con alto nivel de corrección

Los niveles más altos de corrección de errores crean símbolos QR más densos con más módulos en bruto, lo que permite que el código siga siendo legible incluso cuando está parcialmente oscurecido o dañado. Para códigos que se imprimirán en envases o se integrarán en logotipos, el Nivel H es la opción ideal. Para la visualización exclusivamente digital, donde los daños no son un problema, el Nivel M equilibra la capacidad de datos y la fiabilidad.

Elegir el nivel incorrecto es una fuente común de fallas de escaneo en producción. Si sus códigos QR aparecerán en materiales físicos o a diferentes distancias de las cámaras, utilice el Nivel Q o H y verifique el resultado con múltiples aplicaciones de escáner antes de implementarlo.

¿Cómo personalizar la apariencia del código QR?

IronQR ofrece amplias opciones de estilo a través de QrStyleOptions, lo que permite colores, dimensiones, márgenes e incrustación de logotipos personalizados. Los códigos QR de marca funcionan mejor en contextos de marketing porque asocian visualmente el código con una identidad conocida:

using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
$vbLabelText   $csharpLabel

Salida QR estilizada

 Generador de códigos QR NuGet : genere códigos QR en C# con solo unas pocas líneas de código: Imagen 3 - Código QR con estilo

La propiedad Dimensions establece tanto el ancho como la altura en píxeles. La propiedad Margins controla la zona tranquila: el borde blanco que rodea el símbolo QR que los escáneres utilizan para ubicar el límite del código. Reducir los márgenes por debajo del mínimo recomendado de 4 módulos puede provocar fallas de escaneo en dispositivos más antiguos.

Añadir logotipos a los códigos QR mejora el reconocimiento de la marca. El sistema de estilo posiciona automáticamente los logotipos manteniendo la escaneabilidad, una ventaja significativa sobre las alternativas de código abierto que requieren cálculos de ubicación manuales.

¿Cómo guardar códigos QR en diferentes formatos de salida?

IronQR admite varios formatos de salida, como PNG, JPEG, GIF, TIFF, BMP y SVG. El método SaveAs detecta automáticamente el formato de la extensión del archivo:

using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
$vbLabelText   $csharpLabel

Múltiples formatos de salida de códigos QR

 Generador de códigos QR NuGet : genere códigos QR en C# con solo unas pocas líneas de código: Imagen 4: códigos QR guardados como diferentes formatos de archivo

El método ExportBytes() es particularmente útil en aplicaciones web donde necesita devolver una imagen de código QR a través de HTTP sin escribir en el disco. Puede escribir la matriz de bytes directamente en un flujo de respuesta o almacenarla en una columna de base de datos para recuperarla a pedido.

Para insertar códigos QR en documentos PDF, IronQR proporciona el método StampToExistingPdfPage, que permite la colocación directa de códigos QR en documentos existentes. Esto funciona de forma nativa sin bibliotecas PDF adicionales, lo que es importante en entornos de microservicios donde desea minimizar la cantidad de dependencias.

¿Cómo se compara el paquete NuGet IronQR con QRCoder?

La biblioteca QRCoder es una opción popular de código abierto para la generación de códigos QR en .NET. Los desarrolladores que han utilizado QRCoder están familiarizados con su API de varios pasos que involucra QRCodeGenerator, QRCodeData y una clase de representación separada como PngByteQRCode. IronQR simplifica esto a una única llamada QrWriter.Write().

Comparación de funciones de IronQR y QRCoder para desarrolladores .NET
FunciónIronQRQRCoder
Renderizado multiplataformaCompatibilidad completa con .NET 5-10Solo para Windows para renderizado de mapas de bits
Lectura impulsada por MLDetección con una precisión del 99,9 %Sólo generación, no lectura
Integración de PDFSoporte de estampado nativoRequiere bibliotecas adicionales
Soporte comercialasistencia técnica 24/5Sólo para la comunidad
Incrustación de logotipoIncorporado, posicionado automáticamenteSe requiere superposición manual

QRCoder funciona bien para la generación básica en entornos Windows. El modelo de aprendizaje automático de IronQR proporciona una lectura de códigos QR superior desde cualquier ángulo, lo que resulta fundamental para aplicaciones que procesan imágenes enviadas por el usuario donde no se puede controlar la calidad de entrada. La API de método único también reduce las líneas de código necesarias para enviar una función funcional.

Para los equipos que migran de QRCoder, consulte la guía de migración de QRCoder a IronQR para obtener un mapeo de API en paralelo.

¿Cómo se codifican datos binarios en un código QR?

Más allá del texto, IronQR admite la codificación de matrices de bytes para cargas útiles de códigos QR binarios. Esto es útil para tokens cifrados, objetos serializados o identificadores binarios sin procesar que no se pueden representar como cadenas UTF-8:

using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
$vbLabelText   $csharpLabel

Resultado

 Generador de códigos QR NuGet : genere códigos QR en C# con solo unas pocas líneas de código: Imagen 5 - Código QR codificado en binario

La codificación binaria le permite incluir cargas útiles cifradas, objetos serializados o cualquier contenido binario dentro de los símbolos QR. El escáner en el extremo receptor debe saber cómo interpretar la carga binaria: esto es común en los sistemas de control de acceso donde el código QR contiene un token firmado en lugar de una URL legible para humanos.

Tenga en cuenta que los datos binarios producen símbolos QR más densos que los datos de texto equivalentes. Si el tamaño de la carga útil es una preocupación para la confiabilidad del escaneo a distancia, aplique la corrección de error de Nivel H y pruebe con la cámara más pequeña que espera que tengan los usuarios.

¿Cómo se leen códigos QR en C#?

IronQR gestiona tanto la escritura como la lectura. La clase QrReader acepta archivos de imágenes, mapas de bits y fotogramas de cámara, lo que la hace adecuada tanto para el procesamiento por lotes como para escenarios de escaneo en tiempo real:

using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
$vbLabelText   $csharpLabel

El motor de lectura impulsado por ML procesa imágenes en cualquier orientación y maneja daños parciales hasta el umbral de corrección de errores. Para escenarios de lectura de producción, revise el tutorial de lectura de códigos QR para obtener orientación sobre el manejo de entradas de baja calidad, imágenes de múltiples códigos y configuración del modo de escaneo.

¿Cómo se utiliza IronQR en una aplicación ASP.NET Core ?

Las aplicaciones web con frecuencia necesitan generar códigos QR a pedido: para enlaces a cuentas de usuario, códigos de inicio de sesión único o solicitudes de pago. El siguiente ejemplo muestra cómo servir una imagen de código QR directamente desde un punto final de API mínima de ASP.NET Core :

using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
$vbLabelText   $csharpLabel

Este patrón funciona tanto en las API mínimas de ASP.NET Core como en los controladores MVC estándar. La llamada ExportBytes() evita escribir archivos temporales en el disco, lo cual es importante en implementaciones en contenedores donde el sistema de archivos puede ser de solo lectura o efímero.

Para obtener una guía completa sobre la integración de ASP.NET Core , consulte el tutorial del generador de código QR de ASP.NET Core . También está disponible una guía específica de Blazor en el tutorial del generador de códigos QR de Blazor .

¿Cómo agregar un margen y cambiar el tamaño de una imagen de código QR?

El control de las dimensiones y las zonas tranquilas es esencial para obtener resultados de calidad de impresión. IronQR expone ambos a través de QrStyleOptions, y existen guías prácticas dedicadas que cubren cada uno en detalle:

using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
$vbLabelText   $csharpLabel

Para obtener orientación completa sobre los requisitos de tamaño y márgenes en diferentes medios de salida, consulte los artículos instructivos sobre cómo cambiar el tamaño de las imágenes de códigos QR y cómo agregar márgenes a los códigos QR . La guía de creación de imágenes de códigos QR cubre todo el flujo de trabajo de creación de imágenes, desde la activación de la licencia hasta la salida del archivo.

Para casos de uso de códigos QR específicos (incluida la generación de códigos QR para tarjetas de presentación , la creación de un generador de códigos QR dinámico y la lectura de códigos QR a partir de imágenes ), los artículos dedicados cubren cada escenario con ejemplos de código completos.

¿Cuales son tus próximos pasos?

IronQR convierte la generación de códigos QR de un proceso de varios pasos en una sencilla integración NuGet . Instala el paquete, llama a QrWriter.Write() y guarda el resultado: tres operaciones que cubren la mayoría de los escenarios del mundo real. Los niveles de corrección de errores, el estilo personalizado, el estampado de PDF y la lectura impulsada por ML están disponibles a través de la misma biblioteca.

La documentación de IronQR proporciona la referencia completa de la API, incluidos temas avanzados como lectura de códigos QR con modos de escaneo , procesamiento por lotes y notas de implementación específicas de la plataforma. La sección de tutoriales de IronQR incluye guías paso a paso for .NET MAUI, VB .NET y aplicaciones de consola.

Comience una prueba gratuita para explorar el conjunto completo de funciones sin restricciones o compre una licencia para implementación de producción con soporte de ingeniería las 24 horas, los 5 días de la semana.

Preguntas Frecuentes

¿Cómo se instala el paquete NuGet IronQR ?

Ejecute dotnet add package IronQR en una terminal o abra la consola del Administrador de paquetes NuGet en Visual Studio y ejecute Install-Package IronQR . El paquete es compatible con .NET Framework 4.6.2+, .NET Core 2.0+ y .NET 5-10.

¿Cómo generar un código QR en C# con IronQR?

Llame a QrWriter.Write("your-data") para crear un objeto QrCode , luego llame a .Save() para obtener un AnyBitmap y finalmente llame a .SaveAs("output.png") para escribir el archivo.

¿Qué formatos de salida admite IronQR para los códigos QR?

IronQR admite PNG, JPEG, GIF, TIFF, BMP y SVG. El método SaveAs detecta automáticamente el formato a partir de la extensión del archivo. Utilice ExportBytes() para obtener una matriz de bytes para respuestas HTTP o almacenamiento en bases de datos.

¿Cómo personalizar el color y el tamaño de un código QR con IronQR?

Cree un objeto QrStyleOptions y configure Dimensions (píxeles), Margins (píxeles de la zona de silencio), Color y BackgroundColor . Transfiera estos valores a qr.Save(styleOptions) .

¿Qué niveles de corrección de errores admite IronQR ?

IronQR admite los cuatro niveles ISO/IEC 18004 mediante QrErrorCorrectionLevel : L (recuperación de ~7%), M (predeterminado de ~15%), Q (predeterminado de ~25%) y H (predeterminado de ~30%). Pase el nivel en un objeto QrOptions a QrWriter.Write() .

¿Cómo se compara IronQR con QRCoder for .NET?

IronQR ofrece renderizado multiplataforma en .NET 5-10 (el renderizado de mapa de bits de QRCoder es exclusivo para Windows), lectura integrada con tecnología de aprendizaje automático (QRCoder solo genera), estampado nativo de PDF y una API de un solo método. QRCoder es una opción gratuita de código abierto para la generación sencilla en Windows.

¿Puedes usar IronQR para leer códigos QR de imágenes?

Sí. Use QrReader.Read(AnyBitmap.FromFile("path")) para escanear una imagen. El motor basado en aprendizaje automático gestiona cualquier orientación y daño parcial. Repita readResult.QrCodes para acceder a cada result.Value decodificado.

¿Cómo generar códigos QR en una aplicación ASP.NET Core ?

Llama a QrWriter.Write(data) dentro de tu controlador o manejador de API mínimo, luego llama a image.ExportBytes() y devuelve la matriz de bytes como una respuesta Results.File(pngBytes, "image/png") . No se necesitan archivos temporales.

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 para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me