Cómo leer valores de códigos 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 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 transacción incrustado en un código QR. Un sistema de almacén necesita la referencia del producto en una etiqueta. Un validador de boletos 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 usando la biblioteca IronQR. Los desarrolladores que aún no han generado un código QR deberían comenzar primero con la guía Crear Código QR como Imagen.

Inicio rápido: Leer 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 el valor de un código QR desde 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 código QR a continuación codifica https://ironsoftware.com y será escaneado para extraer su valor.

Código QR codificando https://ironsoftware.com utilizado como entrada para el escaneo
: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 tal como fue codificada: una URL, un número, texto libre, u otros datos. 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. Guarda 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 del código QR decodificado https://ironsoftware.com

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

Cada QrResult expone tres propiedades que juntas dan una visión completa de lo que fue escaneado y donde se encontró 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 Value, Url y Points 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 en claro, ID numérico, JSON u otros datos. Esta es la propiedad principal para la mayoría de las aplicaciones.
Url Uri Un objeto Uri analizado y poblado cuando Value es una URL absoluta válida. Úsalo para abrir enlaces, validar dominios o extraer componentes 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 de limite, recortar regiones o calcular el área de escaneo.

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

  • Terminales de pago: Decodifica una URL de transacción o ID de referencia de un código QR de cliente para iniciar un flujo de pago.
  • Validación de boletos: Extrae una referencia de reserva de un código QR impreso o en pantalla para verificar la entrada al evento.
  • Gestión de inventario: Lee números de serie de producto o SKUs de etiquetas de almacén para actualizar registros de stock.
  • Verificación de documentos: Extrae un ID de registro o un hash de un código QR estampado en un documento legal o gubernamental.
  • Autenticación de usuarios: Decodifica un token de un solo uso 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 Imagen y el conjunto completo de características de IronQR.

Preguntas Frecuentes

¿Cómo puedo leer los valores de un código QR en C#?

Puedes usar IronQR en C# para leer los valores del código QR. El método QrReader.Read() te permite extraer la cadena decodificada de un código QR usando QrResult.Value.

¿Qué método se usa para decodificar códigos QR en IronQR?

IronQR utiliza el método QrReader.Read() para decodificar códigos QR, permitiéndote extraer datos como texto y URLs.

¿Puede IronQR extraer URLs de códigos QR?

Sí, IronQR puede analizar URLs de códigos QR usando la propiedad QrResult.Url después de decodificar el código QR.

¿Es posible obtener las coordenadas de las esquinas de un código QR usando IronQR?

IronQR proporciona la propiedad QrResult.Points, que recupera las coordenadas de las esquinas del código QR, otorgando datos de ubicación precisa.

¿Qué es QrResult.Value en IronQR?

QrResult.Value es una propiedad en IronQR que contiene el valor de cadena decodificado del código QR una vez procesado por QrReader.Read().

¿IronQR admite la lectura de múltiples tipos de datos de códigos QR?

Sí, IronQR admite la lectura de varios tipos de datos, incluidos texto, URLs y coordenadas de códigos QR, ofreciendo una funcionalidad versátil para diferentes aplicaciones.

¿Qué tan precisa es la función de decodificación de códigos QR en IronQR?

IronQR está diseñado para proporcionar una decodificación altamente precisa de códigos QR, extrayendo información detallada como valores, URLs y puntos de esquina de manera eficiente.

¿Puede usarse IronQR para códigos QR estáticos y dinámicos?

Sí, IronQR puede decodificar códigos QR estáticos y dinámicos, haciéndolo una herramienta flexible para diferentes aplicaciones de códigos QR.

¿Con qué lenguaje de programación es compatible IronQR?

IronQR es compatible con C#, permitiendo a los desarrolladores integrar fácilmente las capacidades de lectura de códigos QR en sus aplicaciones .NET.

¿Existe una forma de probar la lectura de códigos QR con IronQR?

Puedes probar la lectura de códigos QR en IronQR usando códigos QR de ejemplo y el código de ejemplo proporcionado en la documentación, asegurando que la integración cumpla con las necesidades de tu proyecto.

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 67,270 | Versión: 2026.5 just released
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.