Cómo leer los valores de un código QR en C
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.
-
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().Value); -
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 IronQR C# para leer valores 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 a la cadena decodificada a través de `QrResult.Value`
- Protégete con `results.Any()` antes de acceder a `.First()`
¿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.
: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}")
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
¿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
Resultado
¿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.

