Saltar al pie de página
USO DE IRONBARCODE

Cree y lea imágenes de códigos de barras de Xamarin con una moderna biblioteca de escaneo de C#

Las soluciones de código de barras de Xamarin siguen siendo esenciales para los desarrolladores móviles que mantienen aplicaciones de Android e iOS en venta minorista, logística y gestión de inventario. Aunque Microsoft finalizó el soporte oficial de Xamarin en mayo de 2024, millones de aplicaciones de Xamarin todavía están en producción y esas aplicaciones aún necesitan crear, escanear y decodificar códigos de barras de manera confiable. IronBarcode es un SDK de código de barras .NET que maneja la generación y lectura de códigos de barras con solo unas pocas líneas de código C#. Funciona como un escáner y generador de códigos de barras en las plataformas Android, iOS y Windows, y pasa directamente a .NET MAUI cuando llega el momento de migrar su proyecto.

Comience una prueba gratuita de IronBarcode y agregue la lectura de códigos de barras de Xamarin a su proyecto hoy.

¿Cómo funciona el escaneo de códigos de barras en las aplicaciones Xamarin?

El escaneo de códigos de barras en una aplicación Xamarin funciona capturando información del código de barras desde una transmisión de cámara o un archivo guardado en el dispositivo y luego pasando esos datos a una biblioteca de escaneo que decodifica la información codificada. Históricamente, muchos desarrolladores de Xamarin usaban la biblioteca de código abierto ZXing (Zebra Crossing), creando una nueva instancia de ZXingScannerPage, insertándola en la pila de navegación y manejando el evento OnScanResult para procesar códigos de barras. Si bien este enfoque funcionó para casos de uso básicos de escaneo de códigos QR en Xamarin.Forms, ZXing no ha recibido correcciones de errores significativas en años y los desarrolladores informaron con frecuencia condiciones de error al escanear códigos de barras con poca luz o al decodificar formatos complejos como Data Matrix.

IronBarcode es un SDK de escáner de código de barras moderno que adopta un enfoque diferente. En lugar de proporcionar una página de escáner dedicada con una interfaz de cámara en vivo, IronBarcode opera en cualquier fuente que su aplicación Xamarin pueda proporcionar: capturas de cámara, archivos cargados por el usuario, capturas de pantalla o documentos PDF. Esto lo convierte en una biblioteca de escaneo flexible para proyectos de códigos de barras de Xamarin donde los desarrolladores necesitan control total sobre la interfaz de usuario y el proceso de escaneo. La clase BarcodeReader admite más de 30 formatos de códigos de barras y códigos QR, y el SDK incluye filtros de preprocesamiento integrados que mejoran el rendimiento del escaneo de códigos de barras en condiciones de poca luz o con códigos de barras dañados.

Instale el paquete NuGet IronBarcode en su solución Xamarin para comenzar:

Install-Package BarCode

El paquete BarCode está disponible en NuGet y es compatible con .NET Standard 2.0, lo que lo hace compatible con Xamarin.Forms, proyectos nativos de Xamarin y el marco MAUI de Microsoft. No se requieren paquetes NuGet adicionales específicos de la plataforma ni pasos de configuración para las funciones principales del SDK; instale el paquete y pruébelo inmediatamente en su proyecto.

¿Cómo crear códigos de barras y códigos QR en una aplicación Xamarin?

La generación de códigos de barras para visualizarlos en la pantalla del dispositivo, para etiquetar o para intercambiar datos es sencilla con la clase BarcodeWriter de IronBarcode. El siguiente ejemplo es una muestra común para aplicaciones de código de barras de Xamarin que necesitan producir códigos de barras 1D y 2D.

using IronBarCode;
// Barcode generation: create a Code 128 barcode for product scanning
// Comment: BarcodeWriter handles all supported encoding formats
var barcode = BarcodeWriter.CreateBarcode(
    "PROD-2025-XMR",              // Value to encode in the barcode
    BarcodeWriterEncoding.Code128, // Barcode format for the scanner
    400, 150                       // Width and height in pixels
);
// Customize the barcode: add visible text below the barcode image
// Comment: this text helps users verify the encoded value
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPng("product_barcode.png");
// Generate a QR code that users can scan with any mobile device camera
// Comment: QR codes are ideal for URLs, contact data, and Wi-Fi config
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com",
    BarcodeWriterEncoding.QRCode,
    300, 300
);
// Configure margins and export the QR code as image lines of pixels
qrCode.SetMargins(10);
qrCode.SaveAsPng("qr_code.png");
using IronBarCode;
// Barcode generation: create a Code 128 barcode for product scanning
// Comment: BarcodeWriter handles all supported encoding formats
var barcode = BarcodeWriter.CreateBarcode(
    "PROD-2025-XMR",              // Value to encode in the barcode
    BarcodeWriterEncoding.Code128, // Barcode format for the scanner
    400, 150                       // Width and height in pixels
);
// Customize the barcode: add visible text below the barcode image
// Comment: this text helps users verify the encoded value
barcode.AddBarcodeValueTextBelowBarcode();
barcode.SaveAsPng("product_barcode.png");
// Generate a QR code that users can scan with any mobile device camera
// Comment: QR codes are ideal for URLs, contact data, and Wi-Fi config
var qrCode = BarcodeWriter.CreateBarcode(
    "https://ironsoftware.com",
    BarcodeWriterEncoding.QRCode,
    300, 300
);
// Configure margins and export the QR code as image lines of pixels
qrCode.SetMargins(10);
qrCode.SaveAsPng("qr_code.png");
$vbLabelText   $csharpLabel

Imagen de código de barras de salida

Crear y leer imágenes de códigos de barras de Xamarin con una biblioteca de escaneo C# moderna: Imagen 1 - Código de barras generado

El código anterior muestra la generación de códigos de barras de IronBarcode en tan solo unas líneas. Cada comentario del ejemplo de código resalta el propósito de cada paso. Acepta los datos a codificar, el formato del código de barras de la enumeración BarcodeWriterEncoding y las dimensiones de salida. El SDK de IronBarcode admite una amplia gama de tipos de codificación, incluidos EAN-13, Código 39, código QR, Data Matrix, PDF417 y Aztec. Después de crear una instancia de GeneratedBarcode, puede personalizarla ampliamente: use ResizeTo() para ajustar las dimensiones, SetMargins() para configurar el relleno y AddAnnotationTextAboveBarcode() para agregar etiquetas visibles. Puede exportar los códigos de barras generados como PNG, JPEG, GIF, TIFF o PDF, todo sin escribir código específico de la plataforma para Android o iOS.

Para obtener funciones avanzadas como agregar logotipos a códigos QR o personalizar colores de códigos de barras, explore el tutorial de generación de códigos de barras y la página de ejemplo de creación de códigos de barras .

¿Cómo leer y decodificar códigos de barras desde cámaras y fuentes de archivos?

La lectura de códigos de barras a partir de imágenes capturadas por la cámara del dispositivo o seleccionadas de la biblioteca de fotografías de un usuario es donde IronBarcode ofrece el mayor valor como solución de código de barras Xamarin. El proceso de escaneo maneja todo, desde códigos de barras digitales impecables hasta desafiantes capturas de cámaras del mundo real con un método consistente.

using IronBarCode;
// Comment: read and decode barcodes from a camera-captured file
var results = BarcodeReader.Read("scanned_photo.png");
// Iterate through each barcode scanning result
foreach (var result in results)
{
    // Comment: access the decoded barcode value and format type
    string value = result.Value;
    string type = result.BarcodeType.ToString();
    // Display the scanned barcode data to the user on screen
    Console.WriteLine($"Type: {type}, Value: {value}");
}
using IronBarCode;
// Comment: read and decode barcodes from a camera-captured file
var results = BarcodeReader.Read("scanned_photo.png");
// Iterate through each barcode scanning result
foreach (var result in results)
{
    // Comment: access the decoded barcode value and format type
    string value = result.Value;
    string type = result.BarcodeType.ToString();
    // Display the scanned barcode data to the user on screen
    Console.WriteLine($"Type: {type}, Value: {value}");
}
$vbLabelText   $csharpLabel

Lectura de datos de códigos de barras

Crear y leer imágenes de códigos de barras de Xamarin con una biblioteca de escaneo C# moderna: Imagen 2: valor impreso leído del código de barras cargado

Este fragmento de código pasa un archivo al lector y recorre los resultados. Cada instancia de BarcodeResult proporciona acceso al tipo de código de barras, texto decodificado, datos binarios, coordenadas de posición y un puntaje de confianza, lo que brinda a los desarrolladores todo lo que necesitan para entornos de aplicaciones de producción. Para obtener la lista completa de tipos de códigos de barras admitidos, consulte la página de compatibilidad de formatos de códigos de barras .

Para casos de uso del mundo real donde el rendimiento del escaneo de códigos de barras es importante (escaneo en almacén con poca luz, lectura de códigos de barras dañados en una cinta transportadora en movimiento o decodificación de múltiples códigos de barras en una sola página), la clase BarcodeReaderOptions le permite configurar cada aspecto del proceso de lectura:

using IronBarCode;
// Comment: configure the barcode reader for challenging conditions
var options = new BarcodeReaderOptions
{
    // Comment: balance between scanning speed and accuracy on the device
    Speed = ReadingSpeed.Balanced,
    // Expect multiple barcodes per page or camera capture
    ExpectMultipleBarcodes = true,
    // Limit scanning to specific barcode types for faster results
    ExpectBarcodeTypes = BarcodeEncoding.QRCode
        | BarcodeEncoding.Code128
        | BarcodeEncoding.DataMatrix,
    // Auto-rotate barcodes captured at any camera angle
    AutoRotate = true,
    // Apply image filters to improve scanning in poor conditions
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),       // Sharpen blurry camera captures
        new ContrastFilter(1.5f)   // Boost contrast for low light
    }
};
// Comment: read barcodes from a sample image using configured options
var results = BarcodeReader.Read("warehouse_scan.jpg", options);
// Iterate and display results for the user
foreach (var barcode in results)
{
    // Output each decoded barcode value from the scanner
    Console.WriteLine($"Found: {barcode.Value}");
}
using IronBarCode;
// Comment: configure the barcode reader for challenging conditions
var options = new BarcodeReaderOptions
{
    // Comment: balance between scanning speed and accuracy on the device
    Speed = ReadingSpeed.Balanced,
    // Expect multiple barcodes per page or camera capture
    ExpectMultipleBarcodes = true,
    // Limit scanning to specific barcode types for faster results
    ExpectBarcodeTypes = BarcodeEncoding.QRCode
        | BarcodeEncoding.Code128
        | BarcodeEncoding.DataMatrix,
    // Auto-rotate barcodes captured at any camera angle
    AutoRotate = true,
    // Apply image filters to improve scanning in poor conditions
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),       // Sharpen blurry camera captures
        new ContrastFilter(1.5f)   // Boost contrast for low light
    }
};
// Comment: read barcodes from a sample image using configured options
var results = BarcodeReader.Read("warehouse_scan.jpg", options);
// Iterate and display results for the user
foreach (var barcode in results)
{
    // Output each decoded barcode value from the scanner
    Console.WriteLine($"Found: {barcode.Value}");
}
$vbLabelText   $csharpLabel

La propiedad Velocidad controla el equilibrio entre velocidad y precisión; utilice ReadingSpeed.Faster para escaneo de gran volumen o ReadingSpeed.Detailed para una detección máxima de códigos de barras difíciles. La configuración ExpectBarcodeTypes limita los formatos que busca el SDK del escáner, lo que evita resultados de errores falsos positivos y mejora el rendimiento. La función AutoRotate corrige automáticamente los códigos de barras capturados en ángulos extraños por la cámara del dispositivo, mientras que SharpenFilter y ContrastFilter mejoran el escaneo de códigos de barras en condiciones de poca luz. Los desarrolladores también pueden utilizar el recorte estilo zoom a través de la propiedad CropArea para configurar el escáner para que se centre en una región específica de una página capturada.

Para obtener una guía completa de todas las configuraciones de lectores, consulte la guía para leer códigos de barras a partir de imágenes y la referencia de API de BarcodeReaderOptions . Los desarrolladores que necesitan decodificar códigos de barras de documentos PDF también deben consultar el método de lectura de códigos de barras PDF .

¿Cuáles son los mejores casos de uso para una solución de código de barras móvil?

Las soluciones de escaneo de códigos de barras y códigos QR de Xamarin admiten docenas de casos de uso en todas las industrias. Estos son los escenarios más comunes en los que IronBarcode proporciona un escáner y un generador de códigos de barras que brindan valor en dispositivos móviles:

  • Gestión de inventario y almacén : los usuarios de dispositivos Android e iOS escanean códigos de barras en productos y estantes para rastrear el stock en tiempo real, lo que reduce las tasas de error de ingreso manual y aumenta la velocidad. Cualquier aplicación de almacén se beneficia de un escaneo de códigos de barras rápido y confiable.
  • Punto de venta minorista : el escaneo de códigos QR en el momento del pago permite búsquedas rápidas de productos, canje de cupones y procesamiento de pagos móviles, todo visible para el usuario en la pantalla de la aplicación. La función de escáner maneja formatos 1D y 2D.
  • Logística y envío : escaneo de códigos de barras en paquetes para verificación de ruta y confirmación de entrega en una flota de dispositivos Android e iOS. IronBarcode puede decodificar códigos de barras incluso en etiquetas arrugadas o parcialmente ocultas en la vista de página del escáner.
  • Registro de eventos : una aplicación de Xamarin que decodifica códigos QR en las puertas de la conferencia proporciona una validación instantánea de los asistentes, sin necesidad de boletos de papel predeterminados ni búsquedas manuales de cuentas. La aplicación lee cada código en menos de un segundo.
  • Atención médica : los códigos de barras en las pulseras de los pacientes, las etiquetas de los medicamentos y las muestras de laboratorio se escanean mediante dispositivos móviles para evitar condiciones de error y garantizar un tratamiento preciso por parte del usuario. Cada página de lectura de la aplicación se puede adaptar a tipos de códigos de barras específicos.

IronBarcode brinda soporte para todos estos casos de uso de códigos de barras de Xamarin como un escáner de códigos de barras integral en todas las plataformas, incluidas .NET Standard, .NET Core y .NET MAUI. Para los desarrolladores que mantienen una solución de código de barras Xamarin en producción, IronBarcode ofrece soporte continuo, actualizaciones periódicas y opciones de licencia claras. Cuando la migración de Xamarin a .NET MAUI está en la hoja de ruta, IronBarcode realiza la transición sin problemas y no es necesario reescribir el código. Consulte el tutorial del escáner de código de barras .NET MAUI para ver un ejemplo paso a paso.

La guía de migración de Microsoft para migrar proyectos Xamarin proporciona pasos detallados para la transición al último marco multiplataforma. También puede encontrar un enlace útil a soluciones de la comunidad en esta publicación en Stack Overflow que cubre problemas comunes de códigos de barras de Xamarin, y este enlace a la comunidad de desarrolladores de Xamarin en Reddit alberga discusiones de publicaciones adicionales sobre enfoques de lectura de códigos de barras móviles en todas las plataformas.

¿Cómo empezar a utilizar el escaneo de códigos de barras de Xamarin hoy mismo?

IronBarcode hace que la generación y el escaneo de códigos de barras en Xamarin sean rápidos, confiables y fáciles de usar para los desarrolladores. Proporciona soporte para más de 30 formatos de códigos de barras, funciones avanzadas como rotación automática y preprocesamiento personalizable, y una interfaz C# fluida que mantiene las líneas de código limpias y legibles. Ya sea que la solución requiera crear una aplicación de muestra de código QR simple, procesar códigos de barras a partir de documentos PDF o crear un lector de códigos de barras completo para una aplicación de Android o iOS, IronBarcode lo maneja todo dentro de una única biblioteca bien documentada. Cada función de la API está diseñada para brindar claridad y facilidad de uso en entornos de aplicaciones de producción.

Pruebe IronBarcode en su proyecto Xamarin, regístrese para una prueba gratuita . Cuando esté listo para la producción, explore las opciones de licencia . Visite la página de precios para obtener más información, desde $749. Para obtener soporte posventa, los desarrolladores pueden personalizar su cobertura a través de la página de complementos de licencia .

Empiece con IronBarcode ahora.
green arrow pointer

Preguntas Frecuentes

¿Cómo IronBarcode apoya el desarrollo de aplicaciones Xamarin?

IronBarcode permite a los desarrolladores de aplicaciones Xamarin crear, leer y decodificar códigos de barras con solo unas pocas líneas de código C#. Es compatible con las plataformas Android, iOS y Windows, lo que garantiza una funcionalidad fluida de códigos de barras en aplicaciones móviles.

¿Se puede utilizar IronBarcode tanto para escanear como para generar códigos de barras?

Sí, IronBarcode funciona como un escáner y generador de códigos de barras, lo que permite a los desarrolladores crear y leer códigos de barras fácilmente en sus aplicaciones Xamarin.

¿Qué tipos de códigos de barras admite IronBarcode ?

IronBarcode admite una variedad de tipos de códigos de barras, incluidos Code 128, Data Matrix y códigos QR, entre otros, lo que lo hace versátil para diferentes necesidades de aplicaciones.

¿ IronBarcode es compatible con .NET MAUI?

Sí, IronBarcode está diseñado para una transición fluida a .NET MAUI, lo que garantiza soporte y funcionalidad continuos al migrar desde Xamarin.

¿Por qué es importante IronBarcode para las aplicaciones Xamarin existentes?

Con el final del soporte oficial de Microsoft para Xamarin, IronBarcode proporciona una solución confiable para mantener la funcionalidad del código de barras en las aplicaciones Xamarin existentes en diversas industrias, como el comercio minorista y la logística.

¿Cómo ayuda IronBarcode en la gestión logística y de inventario?

IronBarcode ayuda en la logística y la gestión de inventario generando y decodificando eficientemente códigos de barras, agilizando procesos como el seguimiento y el control de inventario.

¿Qué plataformas son compatibles con IronBarcode?

IronBarcode es compatible con las plataformas Android, iOS y Windows, lo que lo convierte en una herramienta versátil para aplicaciones de códigos de barras multiplataforma.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me