Cómo leer el tipo de código QR en C

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

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.

  1. Instala IronQR con el Administrador de Paquetes NuGet

    PM > Install-Package IronQR
  2. 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);
  3. Despliegue para probar en su entorno real

    Comienza a usar IronQR en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿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.

Código QR que codifica https://ironsoftware.com utilizado como entrada para la detección de 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}")
$vbLabelText   $csharpLabel

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

Salida de consola mostrando el tipo de código QR detectado

¿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
$vbLabelText   $csharpLabel

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

Salida de consola mostrando el resultado del enrutamiento basado en formato para cada código QR detectado

¿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.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 63,625 | Versión: 2026.4 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronQR
ejecuta una muestra observa cómo tu URL se convierte en un código QR.