Como Configurar Níveis de Correção de Erros de Código QR
Assuma o controle do desempenho. Ajuste as configurações de correção de erros para criar códigos QR mais rápidos e duráveis que possam resistir a danos e ainda serem lidos com confiabilidade.
A correção de erros é o que separa um código QR que se desintegra de um que continua funcionando. Quando uma etiqueta impressa é arranhada, um adesivo descola ou um pôster desbota ao sol, a correção de erros determina se o código ainda é lido. IronQR permite que os desenvolvedores escolham quanta resiliência um código QR possui, desde códigos leves otimizados para displays digitais limpos até códigos pesados construídos para sobreviver em armazéns e pisos de fábrica.
Este guia demonstra como configurar níveis de correção de erros usando a biblioteca IronQR, equilibrando a densidade de dados contra a tolerância a danos para qualquer caso de uso. Desenvolvedores novos em criar código QR devem começar com o guia Criar Código QR como Imagem primeiro.
Início Rápido: Definir Correção de Erros do Código QR
Configure o nível de correção de erro via QrOptions e gere um código QR resiliente.
-
Instale IronQR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronQR -
Copie e execute este trecho de código.
var options = new QrOptions(QrErrorCorrectionLevel.Medium); var qrCode = QrWriter.Write("https://example.com", options); qrCode.Save().SaveAs("qr-medium.png"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronQR em seu projeto hoje com uma avaliação gratuita
- Baixe a biblioteca C# do IronQR para gerar códigos QR com correção de erros
- Crie um objeto `QrOptions` com um `ErrorCorrectionLevel` escolhido
- Gere o código QR usando `QrWriter.Write()` com essas opções
- Salve o código QR como bitmap com `Save()`
- Exporte o bitmap para um arquivo de imagem com `SaveAs()`
Compreendendo Níveis de Correção de Erros
Os códigos QR usam correção de erros Reed-Solomon para permanecerem legíveis mesmo quando parcialmente danificados ou ocultos. O enumerador QrErrorCorrectionLevel no IronQR fornece quatro níveis, cada um trocando capacidade de dados por resiliência aumentada:
| Nível | Capacidade de Recuperação | Ideal para |
|---|---|---|
QrErrorCorrectionLevel.Low |
~7% de dano | Telas digitais, ambientes controlados |
QrErrorCorrectionLevel.Medium |
~15% de dano | Uso geral, durabilidade moderada |
QrErrorCorrectionLevel.High |
~25% de dano | Materiais impressos, sinalização externa |
QrErrorCorrectionLevel.Highest |
~30% de dano | Rótulos industriais, condições severas |
Níveis mais altos de correção de erros adicionam mais módulos de redundância, o que aumenta a densidade visual do código QR. Isso também afeta o tamanho da imagem gerada, portanto, os desenvolvedores podem precisar ajustar as dimensões de acordo. O nível mais baixo que atende aos requisitos de durabilidade mantém o código compacto e rápido de ler.
Configurando o Nível de Correção de Erros
Para definir o nível de correção de erro, passe o valor QrErrorCorrectionLevel desejado para o construtor QrOptions. Em seguida, passe essas opções para QrWriter.Write() ao gerar o código QR.
Neste exemplo, a correção de erro está definida como Média, o que recupera até 15% dos dados danificados enquanto mantém o 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")
Saída
Comparando Níveis de Correção de Erro
Cada nível produz um código QR visualmente diferente. Níveis mais baixos geram padrões mais simples que são mais rápidos de escanear, enquanto níveis mais altos criam padrões mais densos que sobrevivem a mais danos. Aqui está como gerar os mesmos dados em cada nível para comparação:
: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")
Saída
Baixo (~7% de Recuperação)
Médio (~15% de Recuperação)
Alto (~25% de Recuperação)
Mais Alto (~30% de Recuperação)
Escolhendo o Nível Correto para o Caso de Uso
O nível correto de correção de erro depende de onde o código QR estará e o que ele precisa suportar:
| Caso de uso | Nível | Por quê | Guia Relacionado |
|---|---|---|---|
| Telões digitais e sites | QrErrorCorrectionLevel.Low |
A tela está limpa, a iluminação é controlada, sem desgaste físico. Mantém o código simples e rápido de escanear. | Criar Código QR como Imagem |
| Cartões de visita, folhetos e sinalização interna | QrErrorCorrectionLevel.Medium |
Manuseio leve e pequenos vincos não afetam o escaneamento. Combine com margens adequadas para melhores resultados. | Adicionar Margens ao Código QR |
| Embalagens de produtos e cartazes ao ar livre | QrErrorCorrectionLevel.High |
Os materiais enfrentam chuva, exposição UV e manuseio bruto durante o transporte. Aumente o tamanho para escaneamento à distância. | Redimensionar Código QR |
| Rótulos de armazém, pisos de fábrica e etiquetas industriais | QrErrorCorrectionLevel.Highest |
Ambientes adversos onde os códigos são arranhados, manchados ou parcialmente cobertos. A redundância máxima os mantém funcionando. | Ler Códigos QR de Imagem |
Para padrões de geração de código QR mais avançados, explore o tutorial Gerador de Código QR em C# e o conjunto completo de recursos do IronQR.

