IRONSOFTWAREHOME

Cómo leer varios códigos de barras a la vez en C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 4 de junio de 2026

IronBarcode permite la lectura simultánea de múltiples códigos de barras de imágenes y PDFs configurando ExpectMultipleBarcodes = verdadero, optimizando el procesamiento de datos para aplicaciones de logística, retail y gestión de inventarios. Tanto si está construyendo sistemas de almacén, aplicaciones de punto de venta minorista o soluciones de procesamiento de documentos, las avanzadas capacidades de lectura de IronBarcode le proporcionan la fiabilidad y el rendimiento que necesita.

Inicio rápido: Lea todos los códigos de barras de una imagen fácilmente

Este ejemplo muestra lo rápido que se puede utilizar IronBarcode para escanear una imagen y obtener todos los códigos de barras que contiene. Simplemente configure ExpectMultipleBarcodes = verdadero junto con los tipos de código de barras que desee, sin trámites innecesarios.

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2Copie y ejecute este fragmento de código.

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { ExpectMultipleBarcodes = verdadero, ExpectBarcodeTypes = IronBarCode.BarcodeEncoding.AllOneDimensional });
    C#
  3. 3Despliegue para probar en su entorno real

    Comienza a usar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo leer varios BarCodes de una imagen?

Por defecto, IronBarcode escanea continuamente un documento para leer múltiples códigos de barras. Sin embargo, ha habido casos en los que sólo se devuelve un valor de código de barras, incluso cuando hay varios códigos de barras presentes. Para ello, personalice la configuración para permitir la lectura de varios códigos de barras, como se muestra a continuación. La propiedad ExpectMultipleBarcodes existe en ambas clases, BarcodeReaderOptions y PdfBarcodeReaderOptions, lo que le permite usarla para leer códigos de barras en imágenes y documentos PDF.

Tres códigos de barras de muestra etiquetados como A, B y C que muestran diferentes patrones de barras para la demostración de lectura de códigos de barras múltiples
using IronBarCode;
using System;

// Set the option to read multiple barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}

Configurar ExpectMultipleBarcodes a verdadero permite a IronBarcode escanear todo el documento para encontrar múltiples códigos de barras y almacenarlos en la variable BarcodeResults. Usando un bucle foreach, puede acceder y mostrar fácilmente todos los valores de los códigos de barras en la consola.

Escenarios avanzados de lectura múltiple de códigos de barras

Al trabajar con varios códigos de barras, es posible que se encuentre con situaciones que requieran una configuración adicional. He aquí un ejemplo exhaustivo que demuestra cómo leer varios códigos de barras con distintos formatos a partir de un documento complejo:

using IronBarCode;
using System;
using System.Linq;

// Configure advanced options for mixed barcode types
BarcodeReaderOptions advancedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = true,
    // Read both 1D and 2D barcodes
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.QRCode | BarcodeEncoding.DataMatrix,
    // Apply image correction filters for better accuracy
    ImageFilters = new ImageFilterCollection() {
        new SharpenFilter(),
        new ContrastFilter()
    },
    // Set speed vs accuracy balance
    Speed = ReadingSpeed.Balanced
};

// Read barcodes from the image
var imageResults = BarcodeReader.Read("mixed-barcodes.jpg", advancedOptions);

// Process results with error handling
foreach (var result in imageResults)
{
    Console.WriteLine($"Barcode Type: {result.BarcodeType}");
    Console.WriteLine($"Value: {result.Value}");
    Console.WriteLine($"Page: {result.PageNumber}");
    Console.WriteLine("---");
}
C#

Este ejemplo avanzado muestra varias características importantes:

¿Cómo puedo leer un solo BarCode para mejorar el rendimiento?

IronBarcode lee códigos de barras simples y múltiples en imágenes o PDF. Por defecto, el motor escanea todo el documento aunque solo exista un código de barras. Para un mejor rendimiento al leer un solo código de barras, configure ExpectMultipleBarcodes a falso. Esto evita que el motor escanee todo el documento después de detectar el primer código de barras, lo que resulta en una recuperación más rápida del código de barras. El siguiente código muestra este enfoque.

Tres códigos de barras de muestra idénticos etiquetados como A, B y C para la demostración de lectura de códigos de barras
using IronBarCode;
using System;

// Set the option to read single barcode
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
};

// Read barcode
var results = BarcodeReader.Read("testbc1.png", options);

foreach (var result in results)
{
    Console.WriteLine(result.ToString());
}

En este ejemplo, usamos la misma imagen con múltiples códigos de barras que antes, pero configuramos ExpectMultipleBarcodes a falso. Como resultado, solo se devuelve el valor del primer código de barras, y el proceso de escaneo se detiene una vez que se recupera el primer código de barras.

Optimización de la lectura de códigos de barras individuales con regiones de recorte

Para un rendimiento aún mejor al leer códigos de barras individuales, combine la configuración ExpectMultipleBarcodes = falso con especificaciones de región de recorte. Esta técnica es especialmente útil cuando se conoce la ubicación aproximada del código de barras:

using IronBarCode;
using IronSoftware.Drawing;

// Define a crop region where the barcode is likely located
var cropRegion = new Rectangle(100, 100, 300, 200);

// Configure options for optimal single barcode reading
BarcodeReaderOptions optimizedOptions = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    CropArea = cropRegion,
    Speed = ReadingSpeed.Faster
};

// Read with optimized settings
var result = BarcodeReader.Read("product-label.png", optimizedOptions).FirstOrDefault();

if (result != null)
{
    Console.WriteLine($"Barcode found: {result.Value}");
}
C#

¿Cuánto más rápida es la lectura de un solo código de barras?

Configurar ExpectMultipleBarcodes = falso mejora significativamente la eficiencia de la lectura de códigos de barras individuales. El aumento del rendimiento es especialmente notable cuando se trabaja con imágenes de alta resolución o cuando se implementa lectura asíncrona de códigos de barras en aplicaciones de alto rendimiento.

Usando el fragmento de código proporcionado, aquí hay una estimación aproximada de la diferencia de rendimiento entre configurar ExpectMultipleBarcodes = verdadero y falso en la misma máquina:

ExpectMultipleBarcodes = verdaderoExpectMultipleBarcodes = falso
00,91 segundos00.10 segundos

Esto representa aproximadamente una mejora de 9 veces el rendimiento al leer códigos de barras individuales. La ganancia de rendimiento real varía en función de:

  • Resolución y complejidad de la imagen
  • Número de BarCodes presentes en la imagen
  • Formatos de códigos de barras seleccionados
  • Filtros de imagen aplicados
  • Especificaciones de hardware

Bestes prácticas para la lectura múltiple de códigos de barras

Al implementar la lectura de códigos de barras múltiples en aplicaciones de producción, tenga en cuenta estas prácticas recomendadas:

  1. Especificar los Tipos de Códigos de Barras Esperados: En lugar de usar BarcodeEncoding.All, especifique solo los formatos que espera. Esto mejora significativamente el rendimiento.

  2. Utiliza formatos de imagen adecuados: Para obtener mejores resultados, utilice imágenes de alto contraste. Más información sobre creación de imágenes óptimas de códigos de barras.

  3. Códigos de barras imperfectos: Los códigos de barras del mundo real pueden estar dañados o mal impresos. Utilice técnicas de corrección de imágenes para mejorar los índices de éxito en la lectura.

  4. Procesamiento de flujos: Para grandes lotes, considere leer desde streams para optimizar el uso de memoria.

  5. Manejo de errores: Implemente siempre un tratamiento de errores adecuado para los escenarios en los que no se puedan leer los códigos de barras:

try
{
    var results = BarcodeReader.Read("barcodes.png", new BarcodeReaderOptions 
    { 
        ExpectMultipleBarcodes = true 
    });
    
    if (!results.Any())
    {
        Console.WriteLine("No barcodes found in the image");
    }
    else
    {
        Console.WriteLine($"Found {results.Count()} barcodes");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading barcodes: {ex.Message}");
    // Log error for debugging
}

Siguiendo estas prácticas y utilizando las completas funciones de IronBarcode, podrá crear aplicaciones sólidas que gestionen de forma eficiente múltiples escenarios de lectura de códigos de barras en diversos sectores y casos de uso.

Preguntas Frecuentes

¿Cómo puedo leer varios códigos de barras a partir de una sola imagen en C#?

Con IronBarcode, puede leer varios códigos de barras de una sola imagen estableciendo ExpectMultipleBarcodes = true en BarcodeReaderOptions. Esto permite a IronBarcode escanear todo el documento y devolver todos los códigos de barras encontrados en una colección BarcodeResults que puede recorrer.

¿Cuál es la forma más rápida de escanear todos los códigos de barras de una imagen?

El método más rápido es utilizar el método Read de IronBarcode con ExpectMultipleBarcodes = true: var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { ExpectMultipleBarcodes = true }). Este código mínimo extrae todos los valores del código de barras sin una configuración compleja.

¿Puedo leer varios códigos de barras de documentos PDF, así como imágenes?

Sí, IronBarcode admite la lectura de múltiples códigos de barras tanto de imágenes como de documentos PDF. La propiedad ExpectMultipleBarcodes está disponible en las clases BarcodeReaderOptions y PdfBarcodeReaderOptions, lo que permite configurar la lectura de múltiples códigos de barras para cualquier tipo de documento.

¿Qué ocurre si no establezco ExpectMultipleBarcodes en true?

Por defecto, IronBarcode escanea continuamente los documentos en busca de múltiples códigos de barras. Sin embargo, en algunos casos, es posible que sólo se devuelva un valor de código de barras aunque existan varios. Al establecer ExpectMultipleBarcodes = true se garantiza explícitamente que IronBarcode explore y devuelva todos los códigos de barras del documento.

¿Cómo puedo acceder a los valores individuales de un código de barras después de leer varios códigos de barras?

Tras leer varios códigos de barras con IronBarcode, los resultados se almacenan en una variable BarcodeResults. Puede acceder fácilmente a los valores individuales de los códigos de barras utilizando un bucle foreach para iterar por la colección y procesar las propiedades de valor, texto y formato de cada código de barras.

¿Es adecuada la lectura de múltiples códigos de barras para aplicaciones de venta al por menor y logística?

Sí, la capacidad de lectura de múltiples códigos de barras de IronBarcode es ideal para sistemas de puntos de venta minoristas, gestión de almacenes, seguimiento logístico y aplicaciones de gestión de inventarios. Agiliza el procesamiento de datos mediante la lectura simultánea y eficaz de todos los códigos de barras de etiquetas de envío, catálogos de productos u hojas de inventario.

¿Puedo especificar qué tipos de códigos de barras buscar al leer varios códigos de barras?

Sí, IronBarcode permite especificar los tipos de códigos de barras esperados mediante la propiedad ExpectBarcodeTypes. Puede configurarlo para que escanee formatos específicos como AllOneDimensional, QRCode o cualquier combinación de tipos de códigos de barras compatibles para optimizar el rendimiento del escaneado.

¿Afecta la configuración de ExpectMultipleBarcodes al rendimiento del escaneado?

Establecer ExpectMultipleBarcodes = false puede aumentar el rendimiento cuando se sabe que sólo existe un código de barras en el documento. IronBarcode dejará de escanear después de encontrar el primer código de barras, por lo que es más rápido para los escenarios de un solo código de barras al tiempo que proporciona la flexibilidad para la lectura de múltiples códigos de barras cuando sea necesario.

Is stream processing supported in IronBarcode for large barcode batches?

Yes, IronBarcode supports reading barcodes from streams, which is particularly useful for optimizing memory usage in high-throughput applications or large batch processing.

¿Listo para empezar?

Nuget Downloads 2,422,100Versión:2026.9recién lanzado

Obtén tu GRATIS

Clave de prueba de 30 días instantáneamente.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuenta
bullet_testPrueba en producción
sin marcas de agua
bullet_calendarProducto completamente
funcional por 30 días
bullet_supportSoporte técnico 24/5
durante la prueba
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronBarcode"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

  1. Descargue y descomprima IronBarCode en una ubicación como ~/Libs dentro de su directorio de Solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronBarcode.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta