Cómo Leer Códigos de Barras Desde Flujos en C#

How to Read Barcodes from Streams with C

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

IronBarcode lee códigos de barras directamente desde objetos MemoryStream en aplicaciones .NET , eliminando la necesidad de guardar primero las secuencias en disco. Esto permite un procesamiento eficiente de códigos de barras desde secuencias de imágenes y documentos PDF almacenados en memoria.

MemoryStream es una clase de .NET Framework que lee y escribe en secuencias almacenadas en memoria. Manipula datos sin archivos físicos, almacenándolos en su lugar en la memoria. Este enfoque funciona bien para aplicaciones web, API o escenarios en los que se reciben datos de códigos de barras como matrices de bytes o se necesita procesar imágenes sin crear archivos temporales.

Además de leer códigos de barras de archivos de imagen o archivos PDF, IronBarcode también lee códigos de barras de secuencias. La biblioteca acepta documentos PDF o secuencias de imágenes como entrada y emite los resultados de la lectura de códigos de barras. Esta capacidad se adapta al procesamiento de datos de bases de datos, cargas web o contenido almacenado en memoria caché.

Inicio rápido: Leer código de barras directamente desde el flujo de imágenes

Utilice dos líneas de código con IronBarcode para leer códigos de barras de cualquier flujo de imágenes, sin necesidad de escribir en disco. Este ejemplo muestra la lectura de códigos de barras basada en secuencias en .NET.

  1. Instala IronBarcode con el Administrador de Paquetes NuGet

    PM > Install-Package BarCode
  2. Copie y ejecute este fragmento de código.

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. Despliegue para probar en su entorno real

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

    arrow pointer

¿Cómo leer BarCodes a partir de flujos de imágenes?

¿Por qué usar flujos de memoria en lugar de archivos?

Los flujos de memoria ofrecen varias ventajas sobre las operaciones basadas en archivos. Eliminan la sobrecarga de E/S del disco, lo que agiliza las aplicaciones. Aumentan la seguridad, ya que los datos sensibles de los códigos de barras nunca tocan el disco. También se adaptan a entornos de nube en los que el acceso a disco es limitado o caro. En combinación con las funciones async y multithreading de IronBarcode, puede procesar varios flujos simultáneamente para obtener el máximo rendimiento.

Esta sección muestra cómo utilizar IronBarcode para leer un flujo de imágenes y varios flujos de imágenes almacenados en un List<MemoryStream>. El siguiente código incluye comentarios para explicar el proceso:

¿Qué tipos de formatos de imagen se admiten?

IronBarcode admite varios formatos de imagen para la lectura de secuencias: JPEG, PNG, GIF, TIFF, BMP y SVG. Esta flexibilidad permite procesar imágenes de códigos de barras independientemente del formato de origen. Para obtener resultados óptimos, utilice la configuración del lector de códigos de barras para ajustar el proceso de lectura.

using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}
$vbLabelText   $csharpLabel

¿Cómo manejar múltiples flujos de imágenes?

El código anterior muestra que IronBarcode acepta un solo objeto MemoryStream o una lista de objetos MemoryStream en el método BarcodeReader.Read(). El ejemplo convierte archivos de imagen en objetos MemoryStream y lee códigos de barras directamente desde las transmisiones.

Al procesar varios flujos, IronBarcode utiliza sus opciones de velocidad de lectura de forma eficiente. Ajuste la velocidad de lectura en función de sus necesidades, ya requiera la máxima precisión o el tiempo de procesamiento más rápido. Para leer varios códigos de barras de un único flujo, IronBarcode detecta y devuelve automáticamente todos los códigos de barras encontrados.

Para mejorar la precisión con imágenes imperfectas o de baja calidad en los flujos, aplique filtros de corrección de imágenes antes del procesamiento. Esto mejora significativamente las tasas de reconocimiento de códigos de barras.

¿Cómo leer códigos de barras de flujos de documentos PDF?

¿Por qué usar ReadPdf() en lugar de Read()?

El método ReadPdf() se optimiza específicamente para documentos PDF, ofreciendo ventajas sobre el método genérico Read(). Maneja eficazmente características específicas de PDF como documentos multipágina, gráficos vectoriales e imágenes incrustadas. El método procesa todas las páginas PDF automáticamente y maneja varios formatos PDF y tipos de compresión. Para conocer todas las funciones, consulte el tutorial de lectura de códigos de barras.

Esta sección demuestra el uso de IronBarcode para leer archivos de documentos PDF como objetos MemoryStream o listas de flujos de documentos PDF. Este es el código:

¿Qué pasa con los documentos PDF múltiples?

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
$vbLabelText   $csharpLabel

¿Cómo puedo procesar varios flujos de PDF de forma eficaz?

Leer códigos de barras de documentos PDF como objetos MemoryStream se parece a leer desde imágenes. La diferencia clave es el método: BarcodeReader.ReadPdf() maneja específicamente documentos PDF. El ejemplo utiliza IronPDF para convertir documentos PDF en objetos MemoryStream.

Para varios documentos PDF, fusione todos los PDF en una secuencia de documentos antes de enviarla a BarcodeReader.ReadPdf(). Este enfoque procesa de forma más eficiente que la gestión de cada PDF por separado y reduce la sobrecarga de memoria. Configure Lectores de códigos de barras específicos de PDF para optimizar la lectura de sus documentos.

Para escenarios avanzados, procese páginas específicas o regiones de PDF. IronBarcode permite especificar intervalos de páginas y recortar regiones dentro de las páginas, centrándose en las áreas donde aparecen los códigos de barras. Esto mejora la velocidad de procesamiento de documentos de gran tamaño.

Al utilizar transmisiones en producción, deseche adecuadamente los objetos MemoryStream para evitar pérdidas de memoria. La declaración using garantiza la eliminación automática:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
$vbLabelText   $csharpLabel

Experimente y adapte la biblioteca a sus necesidades específicas. La flexible API de IronBarcode permite una amplia personalización del proceso de lectura, desde el ajuste de la sensibilidad de detección hasta la especificación de los formatos de código de barras esperados.

Preguntas Frecuentes

¿Cómo puedo leer códigos de barras de secuencias sin guardarlos primero en el disco?

IronBarcode le permite leer códigos de barras directamente desde objetos MemoryStream sin guardarlos en disco. Basta con pasar el flujo al método BarcodeReader.Read(). Este método elimina la sobrecarga de E/S de disco y es ideal para procesar imágenes de cargas web, bases de datos o API.

¿Qué formatos de imagen admite el lector de códigos de barras al procesar secuencias?

IronBarcode admite varios formatos de imagen al leer de secuencias, incluidos JPEG, PNG, GIF, TIFF, BMP y SVG. Esta flexibilidad le permite procesar imágenes de códigos de barras de diversas fuentes sin conversión de formatos.

¿Puedo procesar varios flujos de imágenes de códigos de barras al mismo tiempo?

Sí, IronBarcode admite funciones asíncronas y multihilo, lo que le permite procesar varios flujos de códigos de barras simultáneamente para obtener el máximo rendimiento. Esto resulta especialmente útil cuando se realizan operaciones masivas de lectura de códigos de barras desde la memoria.

¿Cuáles son las ventajas de utilizar flujos de memoria frente a la lectura de códigos de barras basada en archivos?

El procesamiento de flujos de memoria con IronBarcode ofrece un rendimiento más rápido al eliminar la sobrecarga de E/S del disco, una mayor seguridad, ya que los datos confidenciales nunca entran en contacto con el almacenamiento en disco, y una mejor compatibilidad con entornos en la nube en los que el acceso al disco puede ser limitado o costoso.

¿Cómo puedo leer códigos de barras de flujos de documentos PDF?

IronBarcode puede leer códigos de barras tanto de imágenes como de documentos PDF. Simplemente pase su PDF MemoryStream al método BarcodeReader.Read(), y extraerá y decodificará todos los códigos de barras encontrados dentro de las páginas PDF.

¿Es posible ajustar el proceso de lectura de códigos de barras cuando se trabaja con secuencias?

Sí, IronBarcode proporciona configuraciones personalizables del lector de códigos de barras que le permiten optimizar el proceso de lectura para su caso de uso específico, ya sea procesando flujos individuales o múltiples flujos almacenados en colecciones.

Hairil Hasyimi Bin Omar
Ingeniero de Software
Como todos los grandes ingenieros, Hairil es un ávido aprendiz. Está refinando su conocimiento de C#, Python y Java, usando ese conocimiento para agregar valor a los miembros del equipo en Iron Software. Hairil se unió al equipo de Iron Software desde la Universiti Teknologi MARA en Malasia, donde se ...
Leer más
¿Listo para empezar?
Nuget Descargas 2,108,094 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package BarCode
ejecuta una muestra observa cómo tu cadena se convierte en un código de barras.