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

MemoryStream es una clase en el .NET Framework que proporciona una forma de leer desde y escribir en un flujo que se almacena en memoria. Es un tipo de flujo que se puede usar para manipular datos que no están almacenados en un archivo físico, sino en la memoria.

Además de leer códigos de barras de archivos de imagen o archivos PDF, IronBarcode también se destaca en la lectura de códigos de barras desde flujos. Siendo una gran API en una aplicación, IronBarcode es capaz de aceptar un documento PDF o flujo de imagen como entrada y producir el resultado leído de los códigos de barras dentro del flujo. Ahora veamos cómo podemos lograr esto.

como-encabezado:2(Inicio rápido: Leer código de barras directamente desde flujo de imagen)

Usa solo dos líneas de código con IronBarcode para leer códigos de barras desde cualquier flujo de imagen, sin necesidad de escribir primero en disco. Este ejemplo rápido muestra lo simple que es comenzar con la lectura de códigos de barras basada en flujos en .NET.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronBarcode con el gestor 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

    Empieza a utilizar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Leer códigos de barras desde el flujo de imágenes

En esta sección, te mostraremos cómo usar IronBarcode para leer un flujo de imagen, así como múltiples flujos de imagen almacenados en una List<MemoryStream>. A continuación, se muestra el bloque de código corregido con comentarios para ayudarte a entender el proceso:

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());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.IO

Friend Class BarcodeFromImageStream
	Shared Sub Main(ByVal args() As String)
		' Create a list of MemoryStreams to store image streams
		Dim imageStreams As New List(Of MemoryStream) From {
			New MemoryStream(File.ReadAllBytes("example1.png")),
			New MemoryStream(File.ReadAllBytes("example2.png"))
		}

Dim IronBarCode As using
Using IronSoftware.Drawing
	Dim System As using
	Using System.Collections.Generic
		Using System.IO
			
			Dim list As New List(Of MemoryStream)()
			list.Add(AnyBitmap.FromFile("image1.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image2.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image3.png").ToStream())
			
			Dim myBarcode = BarcodeReader.Read(list)
			
			For Each barcode In myBarcode
				Console.WriteLine(barcode.ToString())
			Next barcode
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Del fragmento de código anterior, IronBarcode puede aceptar un objeto o una lista de objetos MemoryStream en el método BarcodeReader.Read() y leer los objetos del flujo como entrada. El ejemplo muestra cómo convertir un archivo de imagen en un objeto MemoryStream y leer los códigos de barras presentes en el flujo directamente.

Leer códigos de barras desde el flujo de documentos PDF

En esta sección, te mostraremos cómo usar IronBarcode para leer un archivo de documento PDF como un objeto MemoryStream o una lista MemoryStream de documentos PDF. Aquí está el bloque de código mejorado:

: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());
}
Imports IronBarCode
Imports IronPdf
Imports System
Imports System.IO

Private document As MemoryStream = PdfDocument.FromFile("file_path.pdf").Stream

Private myBarcode = BarcodeReader.ReadPdf(document)

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

Como se ve en el fragmento de código anterior, leer códigos de barras de un documento PDF como un objeto MemoryStream es bastante similar a leer códigos de barras de imágenes. La principal diferencia es el método utilizado: BarcodeReader.ReadPdf() se usa específicamente para documentos PDF. En el ejemplo, utilizamos la biblioteca IronPDF como un asistente para convertir un documento PDF en un objeto MemoryStream. Si hay múltiples documentos PDF que deseas que IronBarcode lea, se recomienda fusionar todos los documentos PDF en un flujo de documento PDF único y pasarlo al método BarcodeReader.ReadPdf(). ¡Siéntete libre de experimentar y hacer que la biblioteca funcione para tus necesidades específicas!

Preguntas Frecuentes

¿Cómo leo códigos de barras de un flujo de imágenes en C#?

Puedes leer códigos de barras de un flujo de imágenes en C# usando IronBarcode. Convierte los archivos de imagen en objetos MemoryStream y luego utiliza el método BarcodeReader.Read() para decodificar los códigos de barras de estos flujos.

¿Cómo puedo leer códigos de barras de un flujo de documentos PDF usando .NET?

Para leer códigos de barras de un flujo de documentos PDF en .NET, usa el método BarcodeReader.ReadPdf() de IronBarcode. Primero, convierte tus documentos PDF en objetos MemoryStream, posiblemente usando IronPDF, y luego pásalos al método.

¿Puedo leer varios códigos de barras de un solo flujo de PDF?

Sí, el método BarcodeReader.ReadPdf() de IronBarcode puede procesar un solo flujo de PDF y devolver múltiples objetos BarcodeResult, cada uno representando un código de barras encontrado en el PDF.

¿Cuál es la ventaja de usar MemoryStream para la lectura de códigos de barras en .NET?

Usar MemoryStream permite una manipulación eficiente de datos en memoria, lo que lo hace ideal para escenarios donde deseas leer códigos de barras sin depender del almacenamiento en archivos físicos.

¿Qué debo hacer si tengo múltiples documentos PDF para procesar códigos de barras?

Si tienes múltiples documentos PDF, considera combinarlos en un solo flujo de PDF. Este se puede leer eficientemente usando el método BarcodeReader.ReadPdf() para extraer todos los códigos de barras.

¿Es posible leer códigos de barras tanto de imágenes como de flujos de PDFs en una sola aplicación?

Sí, IronBarcode admite la lectura de códigos de barras tanto de flujos de imágenes como de PDFs. Puedes usar BarcodeReader.Read() para imágenes y BarcodeReader.ReadPdf() para PDFs dentro de la misma aplicación.

¿Cómo puedo convertir un archivo de imagen a un MemoryStream en C#?

Convierte un archivo de imagen a un MemoryStream en C# leyendo los bytes de la imagen usando File.ReadAllBytes() y pasando la matriz de bytes al constructor de MemoryStream.

¿Necesito bibliotecas adicionales para convertir archivos PDF a MemoryStreams?

Aunque IronPDF puede usarse para facilitar la conversión de archivos PDF a objetos MemoryStream, IronBarcode puede manejar directamente flujos de PDF para la lectura de códigos de barras.

¿Cuál es la diferencia entre leer códigos de barras de flujos de imagen y PDF?

La principal diferencia es el método usado: BarcodeReader.Read() es para flujos de imágenes, mientras que BarcodeReader.ReadPdf() está específicamente diseñado para flujos de documentos PDF.

¿Hay ejemplos de código para leer códigos de barras de flujos en C#?

Sí, el artículo proporciona código de ejemplo en C# que demuestra cómo leer códigos de barras tanto de flujos de imagen como de PDF usando IronBarcode, destacando el proceso de conversión a objetos MemoryStream.

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 1,979,979 | Version: 2025.11 recién lanzado