Cómo leer los valores de un código QR en C

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

Extrae texto decodificado de cualquier imagen de código QR al instante. Obtén el valor de la cadena en bruto listo para mostrar, almacenar o procesar en tu aplicación.

Leer el valor de un código QR es el primer paso en cualquier flujo de trabajo de escaneo. Un terminal de pago necesita el ID de la transacción incrustado en un código QR. Un sistema de almacén necesita la referencia del producto en una etiqueta. Un validador de entradas necesita el código de reserva impreso en un pase de evento. IronQR hace esto sencillo: carga la imagen, pásala a QrReader y lee la cadena decodificada directamente del resultado.

Esta guía demuestra cómo extraer valores de códigos QR de imágenes utilizando la biblioteca IronQR. Los desarrolladores que aún no han generado un código QR deberían comenzar primero con la guía Crear un código QR como imagen.

Iniciación rápida: Lee un valor de código QR

Carga una imagen, escanéala con QrReader y extrae la cadena decodificada.

  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().Value);
  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 un valor de código QR de una imagen?

Para extraer el valor incrustado en un código QR, carga la imagen en un QrImageInput, pásala a QrReader.Read() y accede a la propiedad Value en el QrResult devuelto. El método devuelve una colección, un resultado por cada código QR encontrado en la imagen.

Entrada

El siguiente código QR codifica https://ironsoftware.com y será escaneado para extraer su valor.

Codificación de código QR https://ironsoftware.com usado como entrada para la exploración
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-value.cs
using IronQr;
using System.Drawing;

// Import image
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into QrImageInput
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 value of the first QR code found
Console.WriteLine($"QR code value is {results.First().Value}");
Imports IronQr
Imports System.Drawing
Imports System.Linq

' Import image
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into QrImageInput
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 value of the first QR code found
Console.WriteLine($"QR code value is {results.First().Value}")
$vbLabelText   $csharpLabel

La propiedad Value devuelve la cadena decodificada en bruto exactamente como fue codificada: una URL, un número, texto libre o cualquier otro dato. El método Read() siempre devuelve un IEnumerable<QrResult>, incluso cuando solo hay un código QR presente. Si la imagen contiene múltiples códigos QR, itera con foreach (var result in results) para procesar cada uno. Protégete con results.Any() antes de llamar a .First() para manejar imágenes donde no se encuentra ningún código QR.

Resultado

Salida de consola mostrando el valor decodificado del código QR https://ironsoftware.com

¿Cómo leo todas las propiedades de un código QR?

Cada QrResult expone tres propiedades que juntas dan una imagen completa de lo que fue escaneado y dónde se encontraba en la imagen. Usando el mismo código QR de entrada de arriba:

:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-value-properties.cs
using IronQr;
using IronSoftware.Drawing;

AnyBitmap inputImage = AnyBitmap.FromFile("sample.jpg");

QrImageInput imageInput = new QrImageInput(inputImage);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

QrResult result = results.First();

// Decoded text content of the QR code
Console.WriteLine($"Value: {result.Value}");

// Parsed URL — populated when Value is a valid URL, null otherwise
Console.WriteLine($"Url:   {result.Url}");

// Corner coordinates of the QR code in the image [TL, TR, BL, BR]
string[] labels = { "Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right" };
for (int i = 0; i < result.Points.Length; i++)
{
    Console.WriteLine($"{labels[i]}: ({result.Points[i].X}, {result.Points[i].Y})");
}
Imports IronQr
Imports IronSoftware.Drawing

Dim inputImage As AnyBitmap = AnyBitmap.FromFile("sample.jpg")

Dim imageInput As New QrImageInput(inputImage)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

Dim result As QrResult = results.First()

' Decoded text content of the QR code
Console.WriteLine($"Value: {result.Value}")

' Parsed URL — populated when Value is a valid URL, Nothing otherwise
Console.WriteLine($"Url:   {result.Url}")

' Corner coordinates of the QR code in the image [TL, TR, BL, BR]
Dim labels As String() = {"Top-Left", "Top-Right", "Bottom-Left", "Bottom-Right"}
For i As Integer = 0 To result.Points.Length - 1
    Console.WriteLine($"{labels(i)}: ({result.Points(i).X}, {result.Points(i).Y})")
Next i
$vbLabelText   $csharpLabel

Resultado

Salida de consola mostrando las propiedades de Valor, URL y Puntos leídas de un código QR

¿Qué propiedades expone QrResult?

QrResult expone las siguientes propiedades después de un escaneo exitoso:

Propiedad Tipo Descripción
Value string La cadena decodificada en bruto exactamente como fue codificada. Puede contener una URL, texto plano, ID numérico, JSON o cualquier otro dato. Esta es la propiedad principal para la mayoría de las aplicaciones.
Url Uri Un objeto Uri analizado que se llena cuando Value es una URL absoluta válida. Úsalo para abrir enlaces, validar dominios o extraer componentes de la URL. Devuelve null si el valor no es una URL.
Points PointF[] Cuatro coordenadas de esquina que marcan la posición del código QR en la imagen de origen, ordenadas [Top-Left, Top-Right, Bottom-Left, Bottom-Right]. Úsalo para dibujar cuadros delimitadores, recortar regiones o calcular el área de escaneo.

¿Cuáles son los casos de uso comunes para leer valores de códigos QR?

  • Terminales de pago: Decodificar una URL de transacción o ID de referencia de un código QR del cliente para iniciar un flujo de pago.
  • Validación de entradas: Extraer una referencia de reserva de un código QR impreso o en pantalla para verificar la entrada al evento.
  • Gestión de inventario: Leer números de serie de productos o SKUs de etiquetas de almacén para actualizar registros de stock.
  • Verificación de documentos: Extraer un ID de registro o hash de un código QR estampado en un documento legal o gubernamental.
  • Autenticación de usuario: Decodificar un token único de un código QR para completar un paso de inicio de sesión de dos factores.

Para más patrones de lectura de códigos QR, explora la guía Leer códigos QR desde una imagen y el conjunto completo 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.