Como ler códigos de barras de fluxos em 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 lê códigos de barras diretamente de objetos MemoryStream em aplicativos .NET, eliminando a necessidade de salvar fluxos no disco primeiro. Isso permite o processamento eficiente de códigos de barras a partir de fluxos de imagem e PDF armazenados na memória.

MemoryStream é uma classe do .NET Framework que lê e escreve em fluxos armazenados na memória. Ela manipula dados sem arquivos físicos, armazenando-os na memória. Esta abordagem funciona bem para aplicações web, APIs ou cenários onde você recebe dados de códigos de barras como arrays de bytes ou precisa processar imagens sem criar arquivos temporários.

Além de ler códigos de barras de arquivos de imagem ou arquivos PDF, IronBarcode também lê códigos de barras de streams. A biblioteca aceita streams de documento PDF ou de imagem como entrada e produz os resultados da leitura de códigos de barras. Esta capacidade é adequada para o processamento de dados de bancos de dados, uploads na web ou conteúdo armazenado em cache na memória.

Início Rápido: Leia Código de Barras Diretamente do Stream de Imagem

Use duas linhas de código com IronBarcode para ler códigos de barras de qualquer stream de imagem—sem necessidade de gravação em disco. Este exemplo demonstra a leitura de códigos de barras baseada em stream no .NET.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Como Ler Códigos de Barras de Streams de Imagem?

Por que Usar Streams de Memória ao Invés de Arquivos?

Streams de memória oferecem várias vantagens sobre operações baseadas em arquivo. Eles eliminam a sobrecarga de E/S de disco, tornando as aplicações mais rápidas. Eles aumentam a segurança, pois dados sensíveis de códigos de barras nunca tocam o disco. Eles também são adequados para ambientes de nuvem onde o acesso a disco é limitado ou caro. Combinado com as capacidades de assíncrono e multithreading do IronBarcode, você pode processar múltiplos streams simultaneamente para máximo desempenho.

Esta seção mostra como usar o IronBarcode para ler um fluxo de imagem e múltiplos fluxos de imagem armazenados em um List<MemoryStream>. O código a seguir inclui comentários para explicar o processo:

Quais Tipos de Formatos de Imagem São Suportados?

IronBarcode suporta múltiplos formatos de imagem ao ler de streams: JPEG, PNG, GIF, TIFF, BMP e SVG. Essa flexibilidade permite o processamento de imagens de códigos de barras independentemente do formato da fonte. Para resultados ideais, use as configurações do leitor de código de barras para ajustar o processo de leitura.

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

Como Manipular Múltiplos Streams de Imagem?

O código acima mostra o IronBarcode aceitando um único objeto MemoryStream ou uma lista de objetos MemoryStream no método BarcodeReader.Read(). O exemplo converte arquivos de imagem em objetos MemoryStream e lê códigos de barras diretamente dos fluxos.

Ao processar múltiplos fluxos, o IronBarcode usa suas opções de velocidade de leitura de forma eficiente. Ajuste a velocidade de leitura com base nas suas necessidades — seja exigindo máxima precisão ou o tempo de processamento mais rápido. Para ler múltiplos códigos de barras de um único fluxo, o IronBarcode detecta e retorna automaticamente todos os códigos de barras encontrados.

Para maior precisão com imagens imperfeitas ou de baixa qualidade em fluxos, aplique filtros de correção de imagem antes de processar. Isso melhora significativamente as taxas de reconhecimento de código de barras.

Como Ler Códigos de Barras de Fluxos de Documentos PDF?

Por que Usar ReadPdf() em vez de Read()?

O método ReadPdf() otimiza especificamente para documentos PDF, oferecendo vantagens sobre o método genérico Read(). Ele lida com recursos específicos de PDF como documentos de várias páginas, gráficos vetoriais e imagens incorporadas de forma eficiente. O método processa todas as páginas PDF automaticamente e lida com vários formatos e tipos de compressão de PDF. Para recursos abrangentes, veja o tutorial de leitura de códigos de barras.

Esta seção demonstra o uso do IronBarcode para ler arquivos de documentos PDF como objetos MemoryStream ou listas de fluxos de documentos PDF. Aqui está o código:

E Quanto a Múltiplos Documentos PDF?

: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

Como Processar Múltiplos Fluxos de PDF de Forma Eficiente?

Ler códigos de barras de documentos PDF como objetos MemoryStream é semelhante a ler de imagens. A principal diferença é o método: BarcodeReader.ReadPdf() lida especificamente com documentos PDF. O exemplo usa IronPDF para converter documentos PDF em objetos MemoryStream.

Para múltiplos documentos PDF, mescle todos os PDFs em um fluxo de documento antes de alimentá-lo para BarcodeReader.ReadPdf(). Esta abordagem processa de forma mais eficiente do que lidar com cada PDF separadamente e reduz a sobrecarga de memória. Configure configurações específicas de leitura de código de barras em PDF para otimizar a leitura de seus documentos.

Para cenários avançados, processe páginas específicas ou regiões de PDF. O IronBarcode permite especificar intervalos de páginas e regiões de recorte dentro das páginas, visando áreas onde aparecem códigos de barras. Isso melhora a velocidade de processamento para documentos grandes.

Ao usar fluxos em produção, descarte adequadamente os objetos MemoryStream para evitar vazamentos de memória. A instrução using garante o descarte automático:

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 e adapte a biblioteca às suas necessidades específicas. A API flexível do IronBarcode permite ampla personalização do processo de leitura, desde ajustar a sensibilidade de detecção até especificar formatos de código de barras esperados.

Perguntas frequentes

Como faço para ler códigos de barras de fluxos de dados sem salvá-los em disco primeiro?

O IronBarcode permite ler códigos de barras diretamente de objetos MemoryStream sem precisar salvá-los em disco. Basta passar o fluxo de dados para o método BarcodeReader.Read(). Essa abordagem elimina a sobrecarga de E/S de disco e é ideal para processar imagens de uploads da web, bancos de dados ou APIs.

Quais formatos de imagem o leitor de código de barras suporta ao processar fluxos de dados?

O IronBarcode suporta diversos formatos de imagem na leitura de fluxos de dados, incluindo JPEG, PNG, GIF, TIFF, BMP e SVG. Essa flexibilidade permite processar imagens de código de barras de várias fontes sem conversão de formato.

Posso processar vários fluxos de imagens de código de barras simultaneamente?

Sim, o IronBarcode oferece suporte a recursos assíncronos e multithreading, permitindo processar vários fluxos de código de barras simultaneamente para obter o máximo desempenho. Isso é particularmente útil ao lidar com operações de leitura em massa de códigos de barras a partir da memória.

Quais são as vantagens de usar fluxos de memória em vez de leitura de código de barras baseada em arquivos?

O processamento de fluxo de memória com IronBarcode oferece desempenho mais rápido ao eliminar a sobrecarga de E/S de disco, segurança aprimorada, já que os dados confidenciais nunca entram em contato com o armazenamento em disco, e melhor compatibilidade com ambientes de nuvem onde o acesso ao disco pode ser limitado ou caro.

Como posso ler códigos de barras em fluxos de documentos PDF?

O IronBarcode consegue ler códigos de barras tanto de imagens quanto de documentos PDF. Basta passar o MemoryStream do seu PDF para o método BarcodeReader.Read(), e ele extrairá e decodificará todos os códigos de barras encontrados nas páginas do PDF.

É possível ajustar com precisão o processo de leitura de código de barras ao trabalhar com fluxos de dados?

Sim, o IronBarcode oferece configurações personalizáveis de leitor de código de barras que permitem otimizar o processo de leitura para o seu caso de uso específico, seja processando fluxos únicos ou múltiplos fluxos armazenados em coleções.

Hairil Hashimi Bin Omar
Engenheiro de Software
Como todo grande engenheiro, Hairil é um ávido aprendiz. Ele está aprimorando seus conhecimentos em C#, Python e Java, usando esse conhecimento para agregar valor aos membros da equipe da Iron Software. Hairil ingressou na equipe da Iron Software vindo da Universiti Teknologi MARA, na Malásia, onde se formou em ...
Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.