Como Ler o Tipo de Código QR em C
Identifique o formato de qualquer código QR escaneado em tempo de execução. Leia QrResult.QrType para detectar a simbologia e construir lógica de processamento sensível ao tipo para diversas fontes de entrada.
Quando uma aplicação aceita códigos QR de múltiplas fontes, o formato nem sempre é previsível. Uma plataforma de logística pode receber códigos QR padrão de etiquetas de remessa juntamente com códigos QR Micro compactos de etiquetas de produtos. Um sistema de processamento de documentos pode escanear códigos embutidos em PDFs juntamente com aqueles impressos em mídia física. Ler QrResult.QrType dá ao aplicativo visibilidade sobre qual formato foi detectado, possibilitando validar a entrada, direcionar dados para o manipulador correto ou registrar formatos não suportados para revisão.
Este guia demonstra como recuperar o formato do código QR a partir dos resultados de leitura usando a biblioteca IronQR. Os desenvolvedores que ainda não realizaram a leitura de código QR devem começar com o guia Ler Códigos QR de Imagem primeiro.
Início Rápido: Ler um Tipo de Código QR
Carregue uma imagem, escaneie-a com QrReader e acesse o formato detectado.
-
Instale IronQR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronQR -
Copie e execute este trecho de código.
var input = new QrImageInput("qr-code.png"); var results = new QrReader().Read(input); Console.WriteLine(results.First().QrType); -
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 IronQR C# para ler tipos de código QR
- Carregue a imagem e envolva-a em um `QrImageInput`
- Crie uma instância de `QrReader` e chame `Read` com a entrada
- Acesse o formato detectado através de `QrResult.QrType`
- Use um `switch` em `QrEncoding` para direcionar o processamento pelo formato
Como Faço para Ler o Tipo de Código QR?
Para ler o tipo de um código QR, carregue a imagem em um QrImageInput, passe-a para QrReader.Read() e acesse QrType no QrResult retornado. A propriedade retorna um valor enum QrEncoding identificando a simbologia detectada.
Entrada
O código QR abaixo codifica https://ironsoftware.com e será escaneado para extrair seu tipo.
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type.cs
using IronQr;
using System.Drawing;
using System.Linq;
// Import an image containing a QR code
var inputImage = Image.FromFile("sample.jpg");
// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);
// Create a QR Reader object
QrReader reader = new QrReader();
// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);
// Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}");
Imports IronQr
Imports System.Drawing
Imports System.Linq
' Import an image containing a QR code
Dim inputImage As Image = Image.FromFile("sample.jpg")
' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)
' Create a QR Reader object
Dim reader As New QrReader()
' Read the input and get all embedded QR codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}")
QrType retorna um valor enum QrEncoding, como QrEncoding.QRCode, QrEncoding.MicroQRCode, ou QrEncoding.RMQRCode. Isso torna seguro usá-lo diretamente em uma instrução switch sem parsing ou comparação de strings.
Saída
Como Faço para Direcionar o Processamento pelo Formato de Código QR?
Quando uma aplicação recebe códigos QR de múltiplas fontes, nem toda entrada será do mesmo formato. Use um switch em QrResult.QrType para direcionar cada código detectado para o manipulador correto com base no seu valor QrEncoding. Isso mantém a lógica específica de formato isolada e torna a adição de novos ramos de formato direta.
Usando o mesmo código QR de entrada de cima:
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type-all.cs
using IronQr;
using IronQr.Enum;
using System.Drawing;
// Import an image containing QR codes
var inputImage = Image.FromFile("sample.jpg");
// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);
// Create a QR Reader object
QrReader reader = new QrReader();
// Read all embedded QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Route processing based on the detected QR code format
foreach (QrResult result in results)
{
switch (result.QrType)
{
case QrEncoding.QRCode:
Console.WriteLine($"Standard QR Code: {result.Value}");
break;
case QrEncoding.MicroQRCode:
Console.WriteLine($"Micro QR Code: {result.Value}");
break;
case QrEncoding.RMQRCode:
Console.WriteLine($"RMQR Code: {result.Value}");
break;
default:
Console.WriteLine($"Other format ({result.QrType}): {result.Value}");
break;
}
}
Imports IronQr
Imports IronQr.Enum
Imports System.Drawing
' Import an image containing QR codes
Dim inputImage As Image = Image.FromFile("sample.jpg")
' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)
' Create a QR Reader object
Dim reader As New QrReader()
' Read all embedded QR codes from the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Route processing based on the detected QR code format
For Each result As QrResult In results
Select Case result.QrType
Case QrEncoding.QRCode
Console.WriteLine($"Standard QR Code: {result.Value}")
Case QrEncoding.MicroQRCode
Console.WriteLine($"Micro QR Code: {result.Value}")
Case QrEncoding.RMQRCode
Console.WriteLine($"RMQR Code: {result.Value}")
Case Else
Console.WriteLine($"Other format ({result.QrType}): {result.Value}")
End Select
Next
Cada case aponta para um valor QrEncoding específico. O ramo default captura qualquer formato não explicitamente tratado, de modo que o loop nunca falha silenciosamente em entradas inesperadas. Adicione mais casos conforme a aplicação precisa suportar formatos adicionais.
Saída
O que Retorna QrResult.QrType?
QrType é uma propriedade enum QrEncoding em cada QrResult que identifica a simbologia detectada pelo scanner. É populado automaticamente durante QrReader.Read() e não requer configuração adicional. Adicione using IronQr.Enum; para usar valores QrEncoding diretamente em um switch.
| Valor | Descrição |
|---|---|
QrEncoding.QRCode |
Código QR padrão, o formato mais comum usado em todas as indústrias |
QrEncoding.MicroQRCode |
Variante compacta projetada para superfícies pequenas com área de impressão limitada |
QrEncoding.RMQRCode |
Código QR Micro Retangular otimizado para formas de etiquetas estreitas e alongadas (rMQR) |
QrType é somente leitura e reflete o que o scanner detectou na imagem. Seu valor não depende de como o código QR foi gerado.
Quais são os casos de uso comuns para QrType?
- Logística e envio: Detecte se uma etiqueta possui um código QR padrão ou um QR Micro compacto e encaminhe cada um para a pipeline de análise correta.
- Processamento de documentos: Valide que um documento escaneado contém o formato esperado antes de extrair seu valor para correspondência de registros.
- Quiosques de múltiplos formatos: Aceite diferentes formatos de QR em uma única estação e encaminhe cada um para o manipulador apropriado sem intervenção manual.
- Auditoria e conformidade: Registre o tipo de simbologia junto aos valores decodificados para criar um registro verificável de formatos de entrada em lotes.
- Garantia de qualidade: Verifique se os códigos QR gerados são escaneados como o tipo pretendido, confirmando que a saída corresponde à especificação.
Para mais informações sobre a leitura de dados de código QR após a detecção do tipo, veja o guia Ler Valor do Código QR e o conjunto completo de recursos do IronQR.

