Cómo Configurar la Corrección de Errores en C# | IronQR

Cómo configurar la corrección de errores en C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

La corrección de errores en los códigos de barras de C# se establece utilizando el parámetro QrErrorCorrectionLevel en el método QRCodeWriter.CreateQrCode de IronBarcode, que admite cuatro niveles (L, M, Q, H) que pueden recuperar entre el 7 y el 30% de los datos dañados, con niveles más altos que crean códigos QR más complejos.

La corrección de errores en los códigos de barras se refiere a la capacidad de mantener la legibilidad del código de barras a pesar de los defectos visuales o errores de codificación. Estos daños pueden surgir debido a factores como imperfecciones de impresión, manchas, arañazos o variaciones en las condiciones de escaneo. La corrección de errores es un factor importante a la hora de determinar qué tipo de codificación de código de barras es el adecuado, especialmente cuando se trabaja con códigos QR en C#.

En general, los códigos de barras 2D tienen una mayor tolerancia a los defectos en comparación con los códigos de barras 1D debido a los siguientes factores:

  • Capacidad de datos: Los códigos de barras 2D almacenan más datos que los códigos de barras 1D, codificando tanto horizontal como verticalmente. Más información sobre formatos de código de barras compatibles.
  • Redundancia: los códigos de barras 2D tienen múltiples capas de codificación de datos, lo que permite la extracción de información de cualquier sección intacta restante incluso cuando parte del código de barras está dañado.
  • Compacidad: los códigos de barras 2D son adecuados para espacios limitados debido a su forma compacta.
  • Flexibilidad: los códigos de barras 2D se pueden escanear desde varios ángulos y orientaciones.

La corrección de errores es especialmente importante cuando se trabaja con códigos de barras imperfectos y corrección de imágenes en situaciones en las que las condiciones de escaneado no son las ideales.

Inicio rápido: Usar nivel de corrección de errores en la creación de códigos QR

Este breve ejemplo muestra cómo generar un código QR con IronBarcode, estableciendo el nivel de corrección de errores en Medio. Los desarrolladores pueden utilizar el método CreateQrCode con contenido, tamaño y nivel de corrección de errores.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronBarcode con el gestor de paquetes NuGet

    PM > Install-Package BarCode

  2. Copie y ejecute este fragmento de código.

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Cómo ajustar la corrección de errores en los códigos QR?

Actualmente, IronBarcode admite la corrección de errores de configuración en Códigos QR, Micro QR y rMQR como parte de sus completas funciones de generación de códigos de barras. Admite los cuatro niveles preestablecidos de corrección de errores especificados por los estándares de códigos QR. The error correction level is adjusted via the QrErrorCorrectionLevel parameter in the QRCodeWriter.CreateQrCode method. Los cuatro niveles de corrección de errores son:

  • Máximo: Nivel H. Puede recuperar hasta un 30% de los datos.
  • Alto: Nivel Q. Puede recuperar hasta un 25% de los datos.
  • Medio: Nivel M. Puede recuperar hasta un 15% de los datos.
  • Bajo: Nivel L. Puede recuperar hasta un 7% de los datos.

Los niveles más altos de corrección de errores generan imágenes de códigos QR más complejas, requiriendo un equilibrio entre la claridad visual y la corrección de errores al generar códigos QR. El ejemplo de código a continuación demuestra cómo configurar la corrección de errores:

:path=/static-assets/barcode/content-code-examples/how-to/set-error-correction.cs
// Import the necessary namespace for barcode generation
using IronBarCode;

// Create a QR code with the specified URL, size, and error correction level
GeneratedBarcode mediumCorrection = QRCodeWriter.CreateQrCode(
    "https://ironsoftware.com/csharp/barcode/", // URL to be encoded in the QR code
    500,                                       // Size of the QR code (500x500 pixels)
    QRCodeWriter.QrErrorCorrectionLevel.Medium // Error correction level to handle distortions
);

// Save the generated QR code image as a PNG file with the specified filename
mediumCorrection.SaveAsPng("mediumCorrection.png");
$vbLabelText   $csharpLabel

¿Qué nivel de corrección de errores debo elegir?

La elección del nivel de corrección de errores depende de su caso de uso y entorno específicos. Para aplicaciones en las que los códigos QR puedan estar expuestos a daños físicos, suciedad u oscurecimiento parcial, se recomiendan niveles de corrección de errores más altos (Q o H). Estos niveles proporcionan una mejor tolerancia a fallos a costa de una mayor complejidad y tamaño del código QR.

Para entornos limpios y controlados, como pantallas digitales o impresión de alta calidad, pueden bastar niveles de corrección de errores más bajos (L o M). Estos niveles producen códigos QR más sencillos y menos densos que son más fáciles de escanear en tamaños más pequeños. Considera estos factores:

  • Entorno físico: Los entornos exteriores o industriales se benefician de una mayor corrección de errores
  • Calidad de impresión: Una impresión de menor calidad requiere una mayor corrección de errores
  • Limitaciones de tamaño: El espacio limitado puede requerir una menor corrección de errores para la legibilidad
  • Distancia de escaneo: Las distancias de escaneo más largas funcionan mejor con códigos QR más sencillos

Aquí tienes un ejemplo que muestra cómo generar códigos QR con diferentes niveles de corrección de errores para comparar:

using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
using IronBarCode;
using System.Drawing;

// Generate QR codes with all four error correction levels
var content = "https://ironsoftware.com/csharp/barcode/";
int size = 500;

// Create QR codes with different error correction levels
var lowCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)</code>;
var mediumCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)</code>;
var highCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;
var highestCorrection = <code>QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)</code>;

// Save each with descriptive filenames
<code>lowCorrection.SaveAsPng("qr_low_correction.png")</code>;
<code>mediumCorrection.SaveAsPng("qr_medium_correction.png")</code>;
<code>highCorrection.SaveAsPng("qr_high_correction.png")</code>;
<code>highestCorrection.SaveAsPng("qr_highest_correction.png")</code>;
$vbLabelText   $csharpLabel

¿Qué parámetros controlan la corrección de errores?

The primary parameter controlling error correction in IronBarcode is the QrErrorCorrectionLevel enumeration. This parameter is passed to the CreateQrCode method and determines how much redundant data is embedded in the QR code. Al crear códigos QR personalizados, puede combinar los ajustes de corrección de errores con otras opciones de estilo:

using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
using IronBarCode;

// Create a styled QR code with high error correction
var styledQr = <code>QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)</code>;

// Apply custom styling
styledQr.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)
    .SetMargins(10)
    .AddAnnotationTextAboveBarcode("Scan for Details");

// Export with various options
styledQr.SaveAsPng("styled_high_correction.png");
styledQr.SaveAsJpeg("styled_high_correction.jpg");
styledQr.SaveAsPdf("styled_high_correction.pdf");
$vbLabelText   $csharpLabel

¿Por qué la corrección de errores afecta a la complejidad de los códigos QR?

La corrección de errores funciona añadiendo datos redundantes al código QR mediante algoritmos de corrección de errores Reed-Solomon. Esta redundancia permite al lector de códigos QR reconstruir las partes de los datos que faltan o están dañadas. Cuanta más corrección de errores se añada, más módulos (cuadrados blancos y negros) se necesitarán para codificar la misma información, lo que dará lugar a un patrón más denso y complejo.

Esta complejidad tiene implicaciones prácticas para la configuración de lectura de códigos de barras y el rendimiento del escaneado. Los niveles más altos de corrección de errores pueden requerir ajustes en la configuración del lector para un rendimiento óptimo.

¿Cuáles son los distintos niveles de corrección de errores?

A continuación se muestra un conjunto de imágenes de códigos QR, cada una representa el mismo valor pero con diferentes niveles de corrección de errores. Como se observa, los niveles más altos de corrección de errores generan imágenes de códigos QR más complejas, ofreciendo una mayor tolerancia a fallos.

QR code with highest error correction level showing dense pattern of black and white squares
QR code demonstrating high error correction level with dense data patterns and robust finder patterns
QR code with medium error correction level showing clear data pattern and finder squares
QR code with low error correction level showing standard black and white matrix pattern

¿Cuándo debo utilizar la corrección de errores superior?

Se recomiendan niveles de corrección de errores más altos en varios casos:

  1. Aplicaciones industriales: Cuando los códigos QR se utilizan en productos o equipos expuestos a condiciones duras
  2. Señalización en exteriores: Para códigos QR expuestos en exteriores sujetos a daños por las inclemencias del tiempo
  3. Almacenamiento a largo plazo: Documentos o productos que deben permanecer escaneables durante años
  4. Materiales de marketing: Cuando se incorporen logotipos o diseños que oculten parcialmente el código QR

Para escenarios avanzados que impliquen lectura de múltiples códigos de barras o procesamiento de imágenes dañadas, una mayor corrección de errores proporciona fiabilidad adicional.

¿Cómo afecta la corrección de errores al tamaño del código QR?

La corrección de errores afecta directamente al tamaño físico y la capacidad de datos de los códigos QR. Los niveles más altos de corrección de errores requieren más módulos para codificar la misma cantidad de datos, lo que puede dar lugar a:

  • Códigos QR más grandes para el mismo contenido de datos
  • Reducción de la capacidad máxima de datos con un tamaño de código QR determinado
  • Patrones más complejos que pueden ser más difíciles de escanear en tamaños pequeños
  • Mayor tiempo de procesamiento tanto para la generación como para la digitalización

¿Cuáles son las diferencias visuales entre los niveles de corrección?

Las diferencias visuales entre los niveles de corrección de errores se hacen evidentes al comparar códigos QR que codifican los mismos datos. Los niveles de corrección más bajos producen patrones más sencillos con menos módulos, mientras que los niveles más altos crean patrones más densos e intrincados. Estas diferencias afectan no solo a la apariencia, sino también a consideraciones prácticas de impresión y visualización.

Para conocer técnicas más avanzadas de generación de códigos de barras, explore nuestra documentación exhaustiva y aprenda a integrar la corrección de errores con otras funciones de códigos de barras para obtener resultados óptimos en sus aplicaciones .NET.

Preguntas Frecuentes

¿Qué es la corrección de errores en la tecnología de códigos de barras?

La corrección de errores en los códigos de barras se refiere a la capacidad de mantener la legibilidad del código de barras a pesar de los defectos visuales o los errores de codificación. IronBarcode implementa la corrección de errores a través del parámetro QrErrorCorrectionLevel, que permite recuperar entre el 7 y el 30% de los datos dañados en función del nivel elegido.

¿Cómo se establecen los niveles de corrección de errores al crear códigos QR en C#?

Puede establecer niveles de corrección de errores mediante el método QRCodeWriter.CreateQrCode de IronBarcode especificando el parámetro QrErrorCorrectionLevel. El método acepta contenido, tamaño y uno de los cuatro niveles de corrección de errores (L, M, Q, H).

¿Cuáles son los cuatro niveles de corrección de errores disponibles para los códigos QR?

IronBarcode admite cuatro niveles de corrección de errores preestablecidos para códigos QR: L (Bajo - 7% de recuperación), M (Medio - 15% de recuperación), Q (Cuartil - 25% de recuperación) y H (Alto - 30% de recuperación). Los niveles más altos crean códigos QR más complejos, pero ofrecen una mayor resistencia a los daños.

¿Qué tipos de códigos de barras admiten ajustes de corrección de errores?

Actualmente, IronBarcode permite establecer niveles de corrección de errores para códigos QR, Micro QR y rMQR. Estos formatos de códigos de barras 2D ofrecen capacidades de corrección de errores superiores en comparación con los códigos de barras 1D tradicionales.

¿Por qué los códigos de barras 2D tienen mejor corrección de errores que los códigos de barras 1D?

los códigos de barras 2D compatibles con IronBarcode tienen una mejor corrección de errores gracias a una mayor capacidad de datos (codificación tanto horizontal como vertical), redundancia integrada que permite la extracción de datos de secciones intactas, forma compacta adecuada para espacios limitados y flexibilidad para escanear desde varios ángulos.

¿Cuándo debo utilizar niveles de corrección de errores más altos?

Utilice niveles de corrección de errores más altos con IronBarcode cuando se enfrente a condiciones de impresión imperfectas, posibles daños físicos (arañazos, manchas), entornos de escaneado difíciles o cuando se requiera durabilidad a largo plazo. Los niveles más altos proporcionan un escaneado más fiable pero aumentan la complejidad del código QR.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 2,035,202 | Versión: 2025.12 recién lanzado