Cómo establecer niveles de corrección de errores de código QR
Tome el control del rendimiento de su generador de código QR. Ajuste la configuración de corrección de errores para crear códigos QR más rápidos y duraderos que puedan soportar daños y aún así escanearse de manera confiable.
La corrección de errores es lo que separa un código QR que se desmorona de uno que sigue funcionando. Cuando una etiqueta impresa se raya, un adhesivo se despega o un póster se desvanece al sol, la corrección de errores determina si el código aún se puede escanear. IronQR permite a los desarrolladores elegir exactamente cuánta resistencia lleva un código QR, desde códigos ligeros optimizados para pantallas digitales hasta códigos robustos construidos para sobrevivir en almacenes y pisos de fábrica.
Esta guía demuestra cómo configurar niveles de corrección de errores utilizando la biblioteca IronQR, equilibrando la densidad de datos contra la tolerancia al daño para cualquier caso de uso. Los desarrolladores nuevos en la generación de códigos QR deben comenzar primero con la guía Crear código QR como imagen.
Inicio rápido: Establecer corrección de errores de código QR
Configura el nivel de corrección de errores a través de QrOptions y genera un código QR resistente.
-
Instala IronQR con el Administrador de Paquetes NuGet
PM > Install-Package IronQR -
Copie y ejecute este fragmento de código.
var options = new QrOptions(QrErrorCorrectionLevel.Medium); var qrCode = QrWriter.Write("https://example.com", options); qrCode.Save().SaveAs("qr-medium.png"); -
Despliegue para probar en su entorno real
Comienza a usar IronQR en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargue la biblioteca IronQR C# para generar códigos QR con corrección de errores
- Cree un objeto `QrOptions` con un `ErrorCorrectionLevel` elegido
- Genere el código QR usando `QrWriter.Write()` con esas opciones
- Guarde el código QR como un bitmap con `Save()`
- Exporte el bitmap a un archivo de imagen con `SaveAs()`
Comprendiendo los niveles de corrección de errores
Los códigos QR utilizan corrección de errores Reed-Solomon para seguir siendo escaneables incluso cuando están parcialmente dañados u oscurecidos. La enumeración QrErrorCorrectionLevel en IronQR proporciona cuatro niveles, cada uno intercambiando capacidad de datos por una mayor resistencia:
| Nivel | Capacidad de recuperación | Lo mejor para |
|---|---|---|
QrErrorCorrectionLevel.Low |
~7% de daño | Pantallas digitales, entornos controlados |
QrErrorCorrectionLevel.Medium |
~15% de daño | Uso general, durabilidad moderada |
QrErrorCorrectionLevel.High |
~25% de daño | Materiales impresos, señalización exterior |
QrErrorCorrectionLevel.Highest |
~30% de daño | Etiquetas industriales, condiciones adversas |
Una corrección de errores más alta agrega más módulos de redundancia, lo que aumenta la densidad visual del código QR. Esto también afecta el tamaño de la imagen generada, por lo que los desarrolladores pueden necesitar ajustar las dimensiones en consecuencia. El nivel más bajo que cumple con los requisitos de durabilidad mantiene el código compacto y rápido de escanear.
Configurando el nivel de corrección de errores
Para establecer el nivel de corrección de errores, pase el valor QrErrorCorrectionLevel deseado al constructor QrOptions. Luego pase estas opciones a QrWriter.Write() al generar el código QR.
En este ejemplo, la corrección de errores se establece en Media, lo que recupera hasta el 15% de los datos dañados mientras mantiene el código compacto.
:path=/static-assets/qr/content-code-examples/how-to/error-correction-qr-code.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium);
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrMedium.png");
Imports IronQr
Imports IronSoftware.Drawing
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium)
' Create QR code
Dim qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrMedium.png")
Resultado
Comparando niveles de corrección de errores
Cada nivel produce un código QR visualmente diferente. Los niveles más bajos generan patrones más simples que se escanean más rápido, mientras que los niveles más altos crean patrones más densos que sobreviven a más daños. Aquí se muestra cómo generar los mismos datos en cada nivel para comparar:
:path=/static-assets/qr/content-code-examples/how-to/error-correction-qr-code-compare.cs
using IronQr;
using IronSoftware.Drawing;
string data = "https://ironsoftware.com";
// Low - ~7% recovery, smallest code
QrCode qrLow = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Low));
qrLow.Save().SaveAs("qrLow.png");
// Medium - ~15% recovery, balanced
QrCode qrMedium = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Medium));
qrMedium.Save().SaveAs("qrMedium.png");
// High - ~25% recovery, durable
QrCode qrHigh = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.High));
qrHigh.Save().SaveAs("qrHigh.png");
// Highest - ~30% recovery, maximum resilience
QrCode qrHighest = QrWriter.Write(data, new QrOptions(QrErrorCorrectionLevel.Highest));
qrHighest.Save().SaveAs("qrHighest.png");
Imports IronQr
Imports IronSoftware.Drawing
Dim data As String = "https://ironsoftware.com"
' Low - ~7% recovery, smallest code
Dim qrLow As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Low))
qrLow.Save().SaveAs("qrLow.png")
' Medium - ~15% recovery, balanced
Dim qrMedium As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Medium))
qrMedium.Save().SaveAs("qrMedium.png")
' High - ~25% recovery, durable
Dim qrHigh As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.High))
qrHigh.Save().SaveAs("qrHigh.png")
' Highest - ~30% recovery, maximum resilience
Dim qrHighest As QrCode = QrWriter.Write(data, New QrOptions(QrErrorCorrectionLevel.Highest))
qrHighest.Save().SaveAs("qrHighest.png")
Resultado
Bajo (~7% de recuperación)
Medio (~15% de recuperación)
Alto (~25% de recuperación)
Más alto (~30% de recuperación)
Eligiendo el nivel adecuado para el caso de uso
El nivel de corrección de errores adecuado depende de dónde estará el código QR y qué necesita soportar:
| Caso práctico | Nivel | Por qué | Guía relacionada |
|---|---|---|---|
| Pantallas digitales y sitios web | QrErrorCorrectionLevel.Low |
La pantalla está limpia, la iluminación está controlada, sin desgaste físico. Mantiene el código simple y rápido de escanear. | Crear código QR como imagen |
| Tarjetas de visita, volantes y señalización interior | QrErrorCorrectionLevel.Medium |
El manejo ligero y el ligero doblado no afectarán el escaneo. Combina con márgenes adecuados para mejores resultados. | Agregar márgenes al código QR |
| Empaque de productos y carteles al aire libre | QrErrorCorrectionLevel.High |
Los materiales enfrenten lluvia, exposición a rayos UV y manejo brusco durante el envío. Escalar el tamaño para escaneo a distancia. | Redimensionar código QR |
| Etiquetas de almacén, pisos de fábrica y etiquetas industriales | QrErrorCorrectionLevel.Highest |
Entornos adversos donde los códigos se rayan, manchan o cubren parcialmente. La máxima redundancia los mantiene funcionando. | Leer códigos QR desde imagen |
Para patrones de generación de códigos QR más avanzados, explore el tutorial de generación de código QR en C# y el conjunto completo de funcionalidades de IronQR.

