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

Cómo leer códigos de barras desde transmisiones con 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 los flujos en el disco. Esto permite un procesamiento eficaz de códigos de barras a partir de flujos de imágenes y documentos PDF almacenados en memoria. `MemoryStream` es una clase de .NET Framework que lee y escribe en flujos almacenados 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](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-images/) o [archivos PDF](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-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é. *as-heading:2(Quickstart: Read Barcode Directly from Image Stream)* (Inicio rápido: lectura directa de códigos de barras a partir de secuencias 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. ```cs :title=Easily Read Barcodes from Streams var result = IronBarCode.BarcodeReader.Read(myImageStream); Console.WriteLine(result[0].Text); ```## ¿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](https://ironsoftware.com/csharp/barcode/how-to/async-multithread/) 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 múltiples flujos de imágenes almacenados en una `Lista`. 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](https://ironsoftware.com/csharp/barcode/examples/barcode-reader-settings-csharp/) para ajustar el proceso de lectura. ```csharp 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 ListimageStreams = new List{ // 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 ``` ### ¿Cómo manejar múltiples flujos de imágenes? El código anterior muestra IronBarcode aceptando un único 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 de los flujos. Al procesar varios flujos, IronBarcode utiliza sus [opciones de velocidad de lectura](https://ironsoftware.com/csharp/barcode/how-to/reading-speed-options/) 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](https://ironsoftware.com/csharp/barcode/how-to/read-multiple-barcodes/) 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](https://ironsoftware.com/csharp/barcode/how-to/image-correction/) 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()` optimiza específicamente los 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](https://ironsoftware.com/csharp/barcode/tutorials/reading-barcodes/). 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? ```csharp :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs ``` ### ¿Cómo puedo procesar varios flujos de PDF de forma eficaz? La lectura de códigos de barras de documentos PDF como objetos `MemoryStream` se asemeja a la lectura de imágenes. La diferencia clave es el método: `BarcodeReader.ReadPdf()` gestiona específicamente documentos PDF. El ejemplo utiliza IronPDF para convertir documentos PDF en objetos `MemoryStream`. Para varios documentos PDF, fusione todos los PDF en un flujo de documentos antes de introducirlo en `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](https://ironsoftware.com/csharp/barcode/examples/pdf-barcode-reader-settings-csharp/) 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 flujos en producción, elimine correctamente los objetos `MemoryStream` para evitar fugas de memoria. El enunciado `using` garantiza la eliminación automática: ```csharp using (MemoryStream pdfStream = new MemoryStream(pdfBytes)) { var results = BarcodeReader.ReadPdf(pdfStream); // Process results } ``` 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,035,202 | Versión: 2025.12 recién lanzado