Generar códigos QR en C#: tutorial completo para desarrolladores .NET
¿Necesitas generar códigos QR en tu aplicación C#? Este tutorial te muestra exactamente cómo crear, personalizar y verificar códigos QR usando IronBarcode, desde implementaciones sencillas de una línea hasta funciones avanzadas como la inserción de logotipos y la codificación de datos binarios.
Ya sea que estés desarrollando sistemas de inventario, plataformas de venta de entradas para eventos o soluciones de pago sin contacto, aprenderás cómo implementar funcionalidad profesional de códigos QR en tus aplicaciones .NET.
Inicio rápido: Creación de códigos QR en una línea con IronBarcode
¿Listo para generar un código QR rápidamente? Aquí te mostramos cómo puedes usar la API QRCodeWriter de IronBarcode para producir un código QR en solo una línea de código: la personalización es opcional pero poderosa.
Empieza a crear PDF con NuGet ahora:
Instalar IronBarcode con el gestor de paquetes NuGet
Copie y ejecute este fragmento de código.
var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");Despliegue para probar en su entorno real
Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Instalar IronBarcode mediante NuGet
- Create a QR code with one line: `QRCodeWriter.CreateQrCode()`
- Embed logos using `CreateQrCodeWithLogo()`
- Verify readability with `GeneratedBarcode.Verify()`
- Codificar datos binarios para aplicaciones avanzadas
¿Cómo instalo una biblioteca de códigos QR en C#?
Comience a usar IronBarcode en su proyecto hoy con una prueba gratuita.
Instala IronBarcode usando el Administrador de Paquetes NuGet con este sencillo comando:
Install-Package BarCode
Alternativamente, descargue el DLL de IronBarcode directamente y agréguelo como una referencia a su proyecto.
Importar espacios de nombres requeridos
Agrega estos espacios de nombres para acceder a las funciones de generación de códigos QR de IronBarcode:
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;using IronBarCode;
using System;
using System.Drawing;
using System.Linq;Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.Linq¿Cómo puedo crear un código QR simple en C#?
Genera un código QR con solo una línea de código usando el método CreateQrCode de IronBarcode:
using IronBarCode;
// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");using IronBarCode;
// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");Imports IronBarCode
' Generate a QR code with text content
Private qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium)
qrCode.SaveAsPng("MyQR.png")El método CreateQrCode acepta tres parámetros:
- Contenido de texto: Los datos a codificar (admite URL, texto o cualquier dato de cadena)
- Tamaño: Dimensiones en píxeles del código QR cuadrado (500x500 en este ejemplo)
- Corrección de errores: Determina la legibilidad en condiciones subóptimas (Bajo, Medio, Cuartil o Alto)
Niveles más altos de corrección de errores permiten que los códigos QR sigan siendo legibles incluso cuando están parcialmente dañados o cubiertos, aunque resultan en patrones más densos con más módulos de datos.
Un código QR básico que contiene texto "hello world", generado a 500x500 píxeles con corrección de errores media
¿Cómo agrego un logotipo a mi código QR?
Insertar logotipos en códigos QR mejora el reconocimiento de la marca mientras se mantiene la capacidad de escanear. IronBarcode automáticamente posiciona y dimensiona los logotipos para preservar la integridad del código QR:
using IronBarCode;
using IronSoftware.Drawing;
// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);
// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");using IronBarCode;
using IronSoftware.Drawing;
// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);
// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");Imports IronBarCode
Imports IronSoftware.Drawing
' Load logo image
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
' Create QR code with embedded logo
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
' Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen)
' Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png")El método CreateQrCodeWithLogo maneja inteligentemente la colocación de logotipos:
- Dimensiona automáticamente el logo para mantener la legibilidad del código QR
- Lo posiciona dentro de la zona de silencio para evitar la corrupción de datos
- Preserva los colores originales del logo al cambiar los colores del código QR
Este enfoque asegura que sus códigos QR de marca permanezcan completamente funcionales en todos los dispositivos y aplicaciones de escaneo.
Código QR que presenta el logo de Visual Studio, demostrando el dimensionamiento y posicionamiento automáticos de logotipos de IronBarcode
¿Cómo puedo exportar códigos QR a diferentes formatos?
IronBarcode admite múltiples formatos de exportación para diferentes casos de uso. Exporte sus códigos QR como imágenes, archivos PDF o archivos HTML:
using IronBarCode;
using System.Drawing;
// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);
// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf"); // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png"); // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg"); // JPEG imageusing IronBarCode;
using System.Drawing;
// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);
// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf"); // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png"); // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg"); // JPEG imageImports IronBarCode
Imports System.Drawing
' Create QR code with logo
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
' Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen)
' Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf") ' PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html") ' Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png") ' PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg") ' JPEG imageCada formato sirve para propósitos específicos:
- PDF: Ideal para documentos e informes imprimibles
- HTML: Perfecto para la integración web sin dependencias externas
- PNG/JPEG: Formatos de imagen estándar para uso versátil
¿Cómo verifico la legibilidad del código QR después de la personalización?
Modificaciones de color y logotipos afectan la escaneabilidad del código QR. Utiliza el método Verify() para asegurar que tus códigos QR personalizados sigan siendo legibles:
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;
// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);
// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;
// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);
// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");IRON VB CONVERTER ERROR developers@ironsoftware.comEl método Verify() realiza una prueba de escaneo completa en su código QR. Esto garantiza compatibilidad en diferentes dispositivos de escaneo y condiciones de iluminación antes del despliegue.
Un código QR verificado exitosamente en azul oscuro, demostrando el contraste adecuado para un escaneo confiable
¿Cómo puedo codificar datos binarios en códigos QR?
Los códigos QR sobresalen en almacenar datos binarios de manera eficiente. Esta capacidad permite aplicaciones avanzadas como transferencia de datos encriptados, intercambio de archivos y configuración de dispositivos IoT:
using IronBarCode;
using System;
using System.Linq;
// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");
// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Data integrity check failed");
}using IronBarCode;
using System;
using System.Linq;
// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");
// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Data integrity check failed");
}Imports IronBarCode
Imports System
Imports System.Linq
' Convert string to binary data
Private binaryData() As Byte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")
' Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png")
' Read and verify binary data integrity
Dim myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
' Confirm data matches original
If binaryData.SequenceEqual(myReturnedData.BinaryValue) Then
Console.WriteLine("Binary Data Read and Written Perfectly")
Else
Throw New Exception("Data integrity check failed")
End IfLa codificación binaria en códigos QR ofrece varias ventajas:
- Eficiencia: Almacena datos en formato binario compacto
- Versatilidad: Maneja cualquier tipo de dato (archivos, contenido encriptado, objetos serializados)
- Integridad: Preserva las secuencias de bytes exactas sin problemas de codificación
Esta característica distingue a IronBarcode de las bibliotecas básicas de códigos QR, permitiendo escenarios sofisticados de intercambio de datos en sus aplicaciones.
Código QR que almacena datos binarios, demostrando las capacidades avanzadas de codificación de IronBarcode
¿Cómo leo códigos QR en C#?
IronBarcode proporciona capacidades flexibles de lectura de códigos QR. Este es el enfoque más sencillo:
using IronBarCode;
using System;
using System.Linq;
// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() {
ExpectBarcodeTypes = BarcodeEncoding.QRCode
});
// Extract and display the decoded value
if (result != null && result.Any())
{
Console.WriteLine(result.First().Value);
}
else
{
Console.WriteLine("No QR codes found in the image.");
}using IronBarCode;
using System;
using System.Linq;
// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() {
ExpectBarcodeTypes = BarcodeEncoding.QRCode
});
// Extract and display the decoded value
if (result != null && result.Any())
{
Console.WriteLine(result.First().Value);
}
else
{
Console.WriteLine("No QR codes found in the image.");
}Imports IronBarCode
Imports System
Imports System.Linq
' Read QR code with optimized settings
Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
' Extract and display the decoded value
If result IsNot Nothing AndAlso result.Any() Then
Console.WriteLine(result.First().Value)
Else
Console.WriteLine("No QR codes found in the image.")
End IfPara escenarios más complejos que requieren un control fino:
using IronBarCode;
using System;
using System.Linq;
// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster, // Optimize for speed
ExpectMultipleBarcodes = false, // Single QR code expected
ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
Multithreaded = true, // Enable parallel processing
MaxParallelThreads = 4, // Utilize multiple CPU cores
RemoveFalsePositive = true, // Filter out false detections
ImageFilters = new ImageFilterCollection() // Apply preprocessing
{
new AdaptiveThresholdFilter(), // Handle varying lighting
new ContrastFilter(), // Enhance contrast
new SharpenFilter() // Improve edge definition
}
};
// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);using IronBarCode;
using System;
using System.Linq;
// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster, // Optimize for speed
ExpectMultipleBarcodes = false, // Single QR code expected
ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
Multithreaded = true, // Enable parallel processing
MaxParallelThreads = 4, // Utilize multiple CPU cores
RemoveFalsePositive = true, // Filter out false detections
ImageFilters = new ImageFilterCollection() // Apply preprocessing
{
new AdaptiveThresholdFilter(), // Handle varying lighting
new ContrastFilter(), // Enhance contrast
new SharpenFilter() // Improve edge definition
}
};
// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);Imports IronBarCode
Imports System
Imports System.Linq
' Configure advanced reading options
Private options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster,
.ExpectMultipleBarcodes = False,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode,
.Multithreaded = True,
.MaxParallelThreads = 4,
.RemoveFalsePositive = True,
.ImageFilters = New ImageFilterCollection() From {
New AdaptiveThresholdFilter(),
New ContrastFilter(),
New SharpenFilter()
}
}
' Read with advanced configuration
Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)Estas opciones de lectura avanzadas permiten una detección confiable de códigos QR en condiciones difíciles como mala iluminación, distorsión de imagen o impresiones de baja calidad.
¿Qué viene ahora para el desarrollo de códigos QR?
Ahora que has dominado la generación de códigos QR con IronBarcode, explora estos temas avanzados:
- Extraer códigos QR de documentos PDF
- Implementar procesamiento por lotes de códigos QR
- Aplicar correcciones de imagen para escaneos difíciles
Descargar recursos
Acceda al código fuente completo y ejemplos:
Documentación de la API
Explora el conjunto completo de características en la referencia de la API:
Alternativa: IronQR para aplicaciones QR avanzadas
Para proyectos que requieran capacidades de código QR de vanguardia, considere IronQR, la biblioteca de códigos QR especializada de Iron Software que ofrece lectura impulsada por aprendizaje automático con una precisión del 99,99% y opciones de generación avanzadas.
¿Listo para implementar códigos QR en tu aplicación .NET? Comienza tu prueba gratuita o descarga IronBarcode hoy.
Preguntas Frecuentes
¿Cómo genero un código QR en C#?
Puede generar un código QR en C# usando el método IronBarcode's QRCodeWriter.CreateQrCode(). Este método le permite pasar su contenido, tamaño y nivel de corrección de errores para crear un código QR de manera eficiente.
¿A qué formatos de imagen se pueden exportar los códigos QR?
Con IronBarcode, puede exportar códigos QR a varios formatos, incluidos PNG, JPEG, PDF y HTML. Métodos como SaveAsPng(), SaveAsJpeg(), SaveAsPdf() y SaveAsHtmlFile() están disponibles para este propósito.
¿Cómo puedo agregar un logotipo de empresa a un código QR?
IronBarcode proporciona el método CreateQrCodeWithLogo(), donde puede pasar un objeto QRCodeLogo que contenga la imagen de su logotipo. La biblioteca asegura que el logotipo esté correctamente dimensionado y posicionado para mantener la legibilidad del código QR.
¿Qué es la corrección de errores de códigos QR y qué nivel debo elegir?
La corrección de errores en códigos QR les permite seguir siendo escaneables incluso si están parcialmente dañados. IronBarcode ofrece cuatro niveles: Bajo (7%), Medio (15%), Cuartil (25%) y Alto (30%). El Medio es adecuado para la mayoría de los propósitos, mientras que el Alto es ideal para entornos desafiantes.
¿Cómo verifico la legibilidad de un código QR personalizado?
Puede utilizar el método Verify() en un objeto GeneratedBarcode para asegurarse de que su código QR personalizado siga siendo escaneable después de modificaciones como cambios de color o adiciones de logotipos.
¿Se pueden codificar datos binarios en códigos QR?
Sí, el método CreateQrCode() de IronBarcode admite la codificación de matrices de bytes, lo que le permite almacenar datos binarios como archivos o contenido cifrado dentro de códigos QR.
¿Cómo leo códigos QR de imágenes en C#?
Para leer códigos QR de imágenes en C#, utilice el método BarcodeReader.Read() de IronBarcode. Para un rendimiento óptimo, especifique BarcodeEncoding.QRCode en BarcodeReaderOptions.
¿Cuál es la capacidad máxima de datos de un código QR?
Los códigos QR generados por IronBarcode pueden contener hasta 2,953 bytes, 4,296 caracteres alfanuméricos o 7,089 dígitos numéricos, dependiendo del nivel de corrección de errores seleccionado.
¿Cómo puedo cambiar el color de un código QR mientras aseguro que siga siendo escaneable?
El método ChangeBarCodeColor() en IronBarcode le permite alterar el color de un código QR. Siempre utilice el método Verify() después para confirmar que la legibilidad del código QR no se vea afectada por el cambio de color.
¿Qué características ofrece una biblioteca especializada en códigos QR?
IronQR, una biblioteca especializada de Iron Software, incluye características avanzadas como lectura de códigos QR mediante aprendizaje automático con una precisión del 99.99% y capacidades de generación robustas adaptadas para aplicaciones complejas.






