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 C# se establece usando el parámetro en el método de IronBarcode, que admite cuatro niveles (,, ,) que pueden recuperar del 7-30% de datos dañados, con niveles más altos creando códigos QR más complejos.

Error Correction en los códigos de barras se refiere a la capacidad de mantener la legibilidad del código de barras a pesar de 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: Cómo usar el 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 usar el método `` con contenido, tamaño y nivel de corrección de errores.

  1. Instala IronBarcode con el Administrador 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

    Comienza a usar 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. El nivel de corrección de errores se ajusta a través del parámetro QrErrorCorrectionLevel en el método ``. 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");
' Import the necessary namespace for barcode generation
Imports IronBarCode

' Create a QR code with the specified URL, size, and error correction level
Private mediumCorrection As GeneratedBarcode = QRCodeWriter.CreateQrCode("https://ironsoftware.com/csharp/barcode/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium)

' 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 donde los códigos QR pueden estar expuestos a daños físicos, suciedad o ocultaciones parciales, se recomiendan niveles de corrección de errores más altos (o). 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 impresiones de alta calidad, los niveles de corrección de errores más bajos (o) pueden ser suficientes. Estos producen códigos QR más simples 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>;
Imports IronBarCode
Imports System.Drawing

' Generate QR codes with all four error correction levels
Dim content As String = "https://ironsoftware.com/csharp/barcode/"
Dim size As Integer = 500

' Create QR codes with different error correction levels
Dim lowCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Low)
Dim mediumCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Medium)
Dim highCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.High)
Dim highestCorrection = QRCodeWriter.CreateQrCode(content, size, QRCodeWriter.QrErrorCorrectionLevel.Highest)

' Save each with descriptive filenames
lowCorrection.SaveAsPng("qr_low_correction.png")
mediumCorrection.SaveAsPng("qr_medium_correction.png")
highCorrection.SaveAsPng("qr_high_correction.png")
highestCorrection.SaveAsPng("qr_highest_correction.png")
$vbLabelText   $csharpLabel

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

El parámetro principal que controla la corrección de errores en IronBarcode es la enumeración . Este parámetro se pasa al método y determina cuánta información redundante se incrusta en el código QR. 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");
Imports IronBarCode

' Create a styled QR code with high error correction
Dim styledQr = QRCodeWriter.CreateQrCode("Important Data", 500, QRCodeWriter.QrErrorCorrectionLevel.High)

' 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 adversas.
  2. Señalización Exterior: Para códigos QR mostrados al aire libre sujetos a daños climáticos.
  3. Almacenamiento a Largo Plazo: Documentos o productos que necesitan permanecer escaneables durante años.
  4. Materiales Publicitarios: Al incorporar logotipos o diseños que parcialmente oscurecen 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.
  • Capacidad máxima de datos reducida en un determinado tamaño de código QR.
  • 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.

¿IronBarcode proporciona soporte para personalizar la apariencia de los códigos de barras?

Sí, IronBarcode proporciona amplias opciones de personalización para la apariencia de los códigos de barras, incluidas color, tamaño y anotaciones de texto, permitiéndote adaptar los códigos de barras a tus requisitos de diseño específicos.

¿Cómo puede IronBarcode ayudar a mejorar la eficiencia de los procesos de negocio?

IronBarcode mejora la eficiencia de los procesos de negocio al permitir la generación y lectura rápida y precisa de códigos de barras, reduciendo errores de entrada de datos manuales y mejorando el seguimiento de inventario y activos.

¿Qué habilidades de programación se necesitan para implementar IronBarcode en un proyecto?

El conocimiento básico de programación en C# es suficiente para implementar IronBarcode en un proyecto, ya que proporciona métodos sencillos y documentación completa para guiar a los desarrolladores.

¿Es IronBarcode adecuado para tanto proyectos pequeños como aplicaciones empresariales grandes?

IronBarcode está diseñado para ser escalable y versátil, haciéndolo adecuado para proyectos pequeños, así como para aplicaciones empresariales grandes que requieren soluciones robustas de códigos de barras.

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,230,745 | Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.