Como configurar a correção de erros em C# | IronQR

Como Configurar Correção de Erros em C

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

A correção de erro em códigos de barras C# é definida usando o parâmetro QrErrorCorrectionLevel no método QRCodeWriter.CreateQrCode do IronBarcode, suportando quatro níveis (L, M, Q, H) que podem recuperar 7-30% dos dados danificados, com níveis mais altos criando códigos QR mais complexos.

Correção de Erros em códigos de barras refere-se à capacidade de manter a legibilidade do código de barras apesar de defeitos visuais ou erros de codificação. Esses danos podem surgir devido a fatores como imperfeições de impressão, manchas, arranhões ou variações nas condições de digitalização. A correção de erros é um fator importante na determinação de qual tipo de codificação de código de barras é adequado, especialmente ao trabalhar com códigos QR em C#.

Em geral, códigos de barras 2D têm maior tolerância a defeitos em comparação com os códigos de barras 1D devido aos seguintes fatores:

  • Capacidade de Dados: Códigos de barras 2D armazenam mais dados do que códigos de barras 1D, codificando tanto horizontalmente quanto verticalmente. Saiba mais sobre formatos de código de barras suportados.
  • Redundância: Códigos de barras 2D têm várias camadas de codificação de dados, permitindo a extração de informações de qualquer seção intacta remanescente, mesmo quando parte do código de barras está danificada.
  • Compacidade: Códigos de barras 2D são adequados para espaços limitados devido à sua forma compacta.
  • Flexibilidade: Códigos de barras 2D podem ser escaneados de vários ângulos e orientações.

A correção de erros se torna particularmente importante ao lidar com códigos de barras imperfeitos e cenários de correção de imagem onde as condições de escaneamento são menos que ideais.

Início Rápido: Use o Nível de Correção de Erro na Criação de Código QR

Este pequeno exemplo mostra como gerar um código QR com o IronBarcode, configurando o nível de correção de erro para Médio. Os desenvolvedores podem usar o método CreateQrCode com conteúdo, tamanho e nível de correção de erro.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var qr = IronBarCode.QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("qr.png");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como Ajusto a Correção de Erro em Códigos QR?

Atualmente, o IronBarcode suporta a configuração de correção de erros em Códigos QR, Micro QRs, e rMQRs como parte de seus recursos abrangentes de geração de código de barras. Ele suporta todos os quatro níveis pré-definidos de correção de erro especificados pelos padrões de código QR. The error correction level is adjusted via the QrErrorCorrectionLevel parameter in the QRCodeWriter.CreateQrCode method. Os quatro níveis de correção de erro são:

  • Mais Alto: Nível H. Pode recuperar até 30% dos dados.
  • Alto: Nível Q. Pode recuperar até 25% dos dados.
  • Médio: Nível M. Pode recuperar até 15% dos dados.
  • Baixo: Nível L. Pode recuperar até 7% dos dados.

Níveis mais altos de correção de erro resultam em imagens de código QR mais complexas, exigindo um equilíbrio entre a clareza visual e a correção de erro ao gerar códigos QR. O exemplo de código abaixo demonstra a configuração de correção de erro:

: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

Qual Nível de Correção de Erros Devo Escolher?

A escolha do nível de correção de erro depende de seu caso de uso específico e ambiente. Para aplicações onde códigos QR podem estar expostos a danos físicos, sujeira ou obstrução parcial, são recomendados níveis de correção de erro mais altos (Q ou H). Esses níveis fornecem melhor tolerância a falhas ao custo de maior complexidade e tamanho do código QR.

Para ambientes limpos e controlados, como displays digitais ou impressões de alta qualidade, níveis de correção de erro mais baixos (L ou M) podem ser suficientes. Estes produzem códigos QR mais simples e menos densos, que são mais fáceis de escanear em tamanhos menores. Considere estes fatores:

  • Ambiente Físico: Configurações ao ar livre ou industriais se beneficiam de uma correção de erro mais alta
  • Qualidade de Impressão: Impressões de menor qualidade requerem correção de erro mais alta
  • Restrições de Tamanho: Espaço limitado pode exigir correção de erro mais baixa para legibilidade
  • Distância de Escaneamento: Distâncias de escaneamento mais longas funcionam melhor com códigos QR mais simples

Aqui está um exemplo mostrando como gerar códigos QR com diferentes níveis de correção de erro para comparação:

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

Que Parâmetros Controlam a Correção de Erro?

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. Ao criar códigos QR personalizados, você pode combinar configurações de correção de erro com outras opções 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 Que a Correção de Erro Afeta a Complexidade dos Códigos QR?

A correção de erro funciona adicionando dados redundantes ao código QR usando algoritmos de correção de erros Reed–Solomon. Essa redundância permite que o leitor de código QR reconstrua porções ausentes ou danificadas dos dados. Quanto mais correção de erro adicionada, mais módulos (quadrados pretos e brancos) são necessários para codificar a mesma informação, resultando em um padrão mais denso e complexo.

Essa complexidade tem implicações práticas para as configurações de leitura de código de barras e desempenho de escaneamento. Níveis mais altos de correção de erro podem exigir ajustes nas configurações do leitor para um desempenho ideal.

Quais São os Diferentes Níveis de Correção de Erro?

Abaixo está um conjunto de imagens de códigos QR, cada uma representando o mesmo valor, mas com diferentes níveis de correção de erro. Como observado, níveis mais altos de correção de erro levam a imagens de código QR mais complexas, oferecendo maior tolerância a falhas.

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

Quando Devo Usar Correção de Erro Mais Alta?

Níveis mais altos de correção de erro são recomendados em vários cenários:

  1. Aplicações Industriais: Quando códigos QR são usados em produtos ou equipamentos expostos a condições adversas
  2. Sinalização Externa: Para códigos QR exibidos ao ar livre sujeitos a danos climáticos
  3. Armazenamento a Longo Prazo: Documentos ou produtos que precisam permanecer escaneáveis por anos
  4. Materiais de Marketing: Ao incorporar logos ou designs que obscurecem parcialmente o código QR

Para cenários avançados que envolvem leitura de múltiplos códigos de barras ou processamento de imagens danificadas, uma correção de erro mais alta fornece confiabilidade adicional.

Como a Correção de Erro Impacta o Tamanho do Código QR?

A correção de erro impacta diretamente o tamanho físico e a capacidade de dados dos códigos QR. Níveis mais altos de correção de erro exigem mais módulos para codificar a mesma quantidade de dados, o que pode resultar em:

  • Códigos QR maiores para o mesmo conteúdo de dados
  • Capacidade máxima de dados reduzida para um determinado tamanho do código QR
  • Padrões mais complexos que podem ser mais difíceis de escanear em tamanhos pequenos
  • Tempo de processamento aumentado tanto para geração quanto para escaneamento

Quais São as Diferenças Visuais Entre Níveis de Correção?

As diferenças visuais entre os níveis de correção de erro tornam-se aparentes ao comparar códigos QR codificando os mesmos dados. Níveis de correção mais baixos produzem padrões mais simples com menos módulos, enquanto níveis mais altos criam padrões mais densos e intrincados. Essas diferenças afetam não apenas a aparência, mas também considerações práticas para impressão e exibição.

Para técnicas de geração de código de barras mais avançadas, explore nossa documentação abrangente e aprenda sobre a integração da correção de erro com outros recursos de código de barras para resultados ótimos em suas aplicações .NET.

Perguntas frequentes

O que é correção de erros na tecnologia de código de barras?

A correção de erros em códigos de barras refere-se à capacidade de manter a legibilidade do código de barras apesar de defeitos visuais ou erros de codificação. O IronBarcode implementa a correção de erros através do parâmetro QrErrorCorrectionLevel, que permite a recuperação de 7 a 30% dos dados danificados, dependendo do nível escolhido.

Como faço para definir os níveis de correção de erros ao criar códigos QR em C#?

Você pode definir os níveis de correção de erros usando o método `QRCodeWriter.CreateQrCode` do IronBarcode, especificando o parâmetro `QrErrorCorrectionLevel`. O método aceita o conteúdo, o tamanho e um dos quatro níveis de correção de erros (L, M, Q, H).

Quais são os quatro níveis de correção de erros disponíveis para códigos QR?

O IronBarcode oferece suporte a quatro níveis predefinidos de correção de erros para códigos QR: L (Baixo - 7% de recuperação), M (Médio - 15% de recuperação), Q (Quartil - 25% de recuperação) e H (Alto - 30% de recuperação). Níveis mais altos criam códigos QR mais complexos, mas oferecem maior resistência a danos.

Quais tipos de código de barras suportam configurações de correção de erros?

Atualmente, o IronBarcode suporta a configuração de níveis de correção de erros para códigos QR, micro QRs e rMQRs. Esses formatos de código de barras 2D oferecem recursos de correção de erros superiores em comparação com os códigos de barras 1D tradicionais.

Por que os códigos de barras 2D têm melhor correção de erros do que os códigos de barras 1D?

Os códigos de barras 2D suportados pela IronBarcode possuem melhor correção de erros devido à maior capacidade de dados (codificação tanto horizontal quanto vertical), redundância integrada que permite a extração de dados de seções intactas, formato compacto adequado para espaços limitados e flexibilidade para leitura em diversos ângulos.

Quando devo usar níveis mais altos de correção de erros?

Use níveis mais altos de correção de erros com o IronBarcode ao lidar com condições de impressão imperfeitas, possíveis danos físicos (arranhões, manchas), ambientes de leitura desafiadores ou quando for necessária durabilidade a longo prazo. Níveis mais altos proporcionam uma leitura mais confiável, mas aumentam a complexidade do código QR.

Hairil Hashimi Bin Omar
Engenheiro de Software
Como todo grande engenheiro, Hairil é um ávido aprendiz. Ele está aprimorando seus conhecimentos em C#, Python e Java, usando esse conhecimento para agregar valor aos membros da equipe da Iron Software. Hairil ingressou na equipe da Iron Software vindo da Universiti Teknologi MARA, na Malásia, onde se formou em ...
Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.