Cómo leer el tipo de código QR en C
Identifica el formato de cualquier código QR escaneado en tiempo de ejecución. Lee QrResult.QrType para detectar la simbología y construir lógica de procesamiento consciente del tipo para diversas fuentes de entrada.
Cuando una aplicación acepta códigos QR de múltiples fuentes, el formato no siempre es predecible. Una plataforma de logística podría recibir códigos QR estándar de etiquetas de envío junto con códigos QR Micro compactos de etiquetas de productos. Un sistema de procesamiento de documentos podría escanear códigos incrustados en PDFs junto con aquellos impresos en medios físicos. Leer QrResult.QrType proporciona a la aplicación visibilidad sobre qué formato fue detectado, permitiendo validar la entrada, enrutar datos al manejador correcto, o registrar formatos no soportados para revisión.
Esta guía demuestra cómo recuperar el formato del código QR de los resultados de escaneo utilizando la biblioteca de IronQR. Los desarrolladores que aún no han escaneado un código QR deberían comenzar primero con la guía Leer códigos QR desde imagen.
Inicio rápido: Leer un tipo de código QR
Carga una imagen, escanéala con QrReader, y accede al formato detectado.
-
Instala IronQR con el Administrador de Paquetes NuGet
PM > Install-Package IronQR -
Copie y ejecute este fragmento de código.
var input = new QrImageInput("qr-code.png"); var results = new QrReader().Read(input); Console.WriteLine(results.First().QrType); -
Despliegue para probar en su entorno real
Comienza a usar IronQR en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descarga la biblioteca de IronQR C# para leer tipos de códigos QR
- Carga la imagen y envuélvela en un `QrImageInput`
- Crea una instancia de `QrReader` y llama a `Read` con la entrada
- Accede al formato detectado a través de `QrResult.QrType`
- Usa un `switch` en `QrEncoding` para enrutar el procesamiento por formato
¿Cómo leo el tipo de código QR?
Para leer el tipo de un código QR, carga la imagen en un QrImageInput, pásala a QrReader.Read(), y accede a QrType en el QrResult devuelto. La propiedad devuelve un valor enum QrEncoding que identifica la simbología detectada.
Entrada
El código QR a continuación codifica https://ironsoftware.com y será escaneado para extraer su 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 devuelve un valor enum QrEncoding como QrEncoding.QRCode, QrEncoding.MicroQRCode, o QrEncoding.RMQRCode. Esto hace que sea seguro usarlo directamente en una declaración switch sin necesidad de análisis o comparación de cadenas.
Resultado
¿Cómo enruto el procesamiento por formato de código QR?
Cuando una aplicación recibe códigos QR de múltiples fuentes, no toda entrada será del mismo formato. Usa un switch en QrResult.QrType para enrutar cada código detectado al manejador correcto basado en su valor QrEncoding. Esto mantiene la lógica específica del formato aislada y hace que agregar nuevas ramas de formato sea sencillo.
Usando el mismo código QR de entrada de arriba:
: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 se dirige a un valor QrEncoding específico. La rama default captura cualquier formato que no se maneje explícitamente, por lo que el bucle nunca falla silenciosamente ante entradas inesperadas. Añade más casos a medida que la aplicación necesita soportar formatos adicionales.
Resultado
¿Qué devuelve QrResult.QrType?
QrType es una propiedad enum QrEncoding en cada QrResult que identifica la simbología detectada por el escáner. Se llena automáticamente durante QrReader.Read() y no requiere configuración adicional. Agrega using IronQr.Enum; para usar valores QrEncoding directamente en una switch.
| Valor | Descripción |
|---|---|
QrEncoding.QRCode |
Código QR estándar, el formato más comúnmente usado en todas las industrias |
QrEncoding.MicroQRCode |
Variante compacta diseñada para superficies pequeñas con área de impresión limitada |
QrEncoding.RMQRCode |
Código QR Micro rectangular optimizado para formas de etiqueta estrechas y alargadas (rMQR) |
QrType es de solo lectura y refleja lo que el escáner detectó en la imagen. Su valor no depende de cómo se generó el código QR.
¿Cuáles son casos de uso comunes para QrType?
- Logística y envíos: Detecta si una etiqueta lleva un código QR estándar o un Micro QR compacto y enruta cada uno al pipeline de análisis correcto.
- Procesamiento de documentos: Valida que un documento escaneado contenga el formato esperado antes de extraer su valor para la coincidencia de registros.
- Kioscos de múltiples formatos: Acepta diferentes formatos de QR en una sola estación y despacha cada uno al manejador apropiado sin intervención manual.
- Auditoría y cumplimiento: Registra el tipo de simbología junto con los valores decodificados para crear un registro verificable de formatos de entrada a través de lotes.
- Aseguramiento de calidad: Verifica que los códigos QR generados se escaneen como el tipo previsto, confirmando que la salida coincide con la especificación.
Para más información sobre cómo leer los datos de QR después de detectar el tipo, consulte la guía Leer el Valor del Código QR y la gama completa de características de IronQR.

