Como criar códigos de barras como fluxos em C# usando IronBarcode

How to Export Barcodes as Streams in C#

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

IronBarcode permite gerar códigos de barras e convertê-los diretamente em objetos MemoryStream sem E/S de arquivos, melhorando o desempenho e a segurança. Essa abordagem simplificada elimina operações de disco e permite integração perfeita com aplicações. Seja construindo APIs web, processando operações em lote ou integrando serviços em nuvem, a geração de códigos de barras baseada em stream proporciona a flexibilidade e eficiência que aplicações modernas exigem.

Início Rápido: Exportar Código de Barras para um Stream Instantaneamente

Use o IronBarcode para gerar um código de barras e convertê-lo diretamente em um MemoryStream com uma linha de código. Sistema de arquivos não necessário.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

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

    var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream();
  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 Faço Para Exportar Códigos de Barras como Streams?

Depois de criar o código de barras com o valor desejado, use o método ToStream para converter o código de barras gerado em um MemoryStream. O formato padrão é PNG. Essa funcionalidade também funciona com QRCodeWriter, mesmo após aplicar estilo personalizado. Para uma documentação abrangente sobre todos os métodos disponíveis, consulte a Referência da API.

Exemplo de Exportação de Código de Barras como Stream

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-stream.cs
using IronBarCode;
using System.IO;

// Create one-dimensional barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128);

// Convert barcode to stream
Stream barcodeStream = barcode.ToStream();

// Create QR code
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode("IronBarcode1234");

// Convert QR code to stream
Stream qrCodeStream = qrCode.ToStream();
$vbLabelText   $csharpLabel

Por Que Usar Streams em Vez de Arquivos?

Usar streams elimina dependências do sistema de arquivos e oferece processamento em memória para melhor desempenho. Essa abordagem é ideal para aplicações web, APIs e cenários onde a criação de arquivos temporários é restrita ou indesejável. O processamento baseado em stream oferece várias vantagens:

  • Segurança Aprimorada: Sem arquivos temporários no disco que poderiam expor dados sensíveis
  • Melhor Desempenho: Operações de memória direta são mais rápidas que I/O de disco
  • Compatibilidade com Nuvem: Funciona perfeitamente em ambientes containerizados e sem servidor
  • Eficiência de Recursos: Reduz uso de espaço em disco e sobrecarga do sistema de arquivos

Quando Devo Usar MemoryStream para Códigos de Barras?

Use MemoryStream quando precisar processar códigos de barras na memória, enviá-los diretamente para respostas HTTP ou integrá-los com outras APIs baseadas em fluxo sem criar arquivos temporários. Os cenários comuns incluem:

  • Respostas de API Web: Retornar códigos de barras diretamente em respostas HTTP sem salvar em disco
  • Armazenamento em Banco de Dados: Armazenar dados de códigos de barras como blobs binários em bancos de dados
  • Anexos de Email: Gerar e anexar códigos de barras a emails de forma instantânea
  • Armazenamento em Nuvem: Carregue diretamente para Azure Blob Storage, AWS S3 ou serviços similares
  • Processamento em Tempo Real: Gera códigos de barras para consumo imediato sem persistência

Para quais formatos de imagem posso exportar para fluxos?

O IronBarcode suporta vários formatos de dados de saída para exportação de fluxo. Vários métodos convertem o objeto do código de barras em um MemoryStream. Esses métodos simplificam o processo, permitindo que você escolha com base no formato de imagem desejado. Os métodos disponíveis incluem:

Método Formato Descrição
Propriedade BinaryStream Bitmap Retorna um System.IO.Stream do código de barras renderizado como uma imagem Bitmap
ToGifStream() GIF Para formato de imagem GIF
ToJpegStream() JPEG/JPG Para formato de imagem JPEG/JPG
ToPdfStream() PDF Para formato de documento PDF
ToPngStream() PNG Para formato de imagem PNG
ToStream() PNG (padrão) Para formato de imagemPNGpor padrão. Aceita o campo enum AnyBitmap.ImageFormat como argumento para especificar o formato desejado
ToTiffStream() TIFF Para formato de imagem TIFF

Exportar Código de Barras como Fluxo em Vários Formatos de Imagem

Use os métodos ToJpegStream e ToStream para gerar fluxos no formato de imagem JPEG:

:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-jpeg-stream.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.IO;

// Create one-dimensional barcode
GeneratedBarcode barcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128);

// Convert barcode to JPEG stream
Stream barcodeStream = barcode.ToStream(AnyBitmap.ImageFormat.Jpeg);

// Create QR code
GeneratedBarcode qrCode = QRCodeWriter.CreateQrCode("IronBarcode1234");

// Convert QR code to JPEG stream
Stream qrCodeStream = qrCode.ToJpegStream();
$vbLabelText   $csharpLabel

Exemplos Avançados de Exportação de Fluxo

Este exemplo abrangente demonstra como criar códigos de barras a partir de vários tipos de dados e exportá-los como fluxos em diferentes formatos:

using IronBarCode;
using IronSoftware.Drawing;
using System.IO;
using System.Drawing.Imaging;

public class BarcodeStreamExporter
{
    public static void ExportMultipleFormats()
    {
        // Generate barcode with custom data
        var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-2024-001", BarcodeEncoding.Code128);

        // Apply styling
        myBarcode.ResizeTo(300, 150);
        myBarcode.SetMargins(10);
        myBarcode.AddAnnotationTextAboveBarcode("Product ID");

        // Export to different stream formats
        Stream pngStream = myBarcode.ToPngStream();
        Stream jpegStream = myBarcode.ToJpegStream();
        Stream pdfStream = myBarcode.ToPdfStream();
        Stream tiffStream = myBarcode.ToTiffStream();

        // Use with HTTP response (ASP.NET Core example)
        // return File(pngStream, "image/png", "barcode.png");
    }

    public static byte[] GenerateQRCodeBytes(string data)
    {
        // Create QR code with error correction
        var qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500);

        // Convert to byte array via stream
        using (var stream = qrCode.ToStream())
        {
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                return memoryStream.ToArray();
            }
        }
    }
}
using IronBarCode;
using IronSoftware.Drawing;
using System.IO;
using System.Drawing.Imaging;

public class BarcodeStreamExporter
{
    public static void ExportMultipleFormats()
    {
        // Generate barcode with custom data
        var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-2024-001", BarcodeEncoding.Code128);

        // Apply styling
        myBarcode.ResizeTo(300, 150);
        myBarcode.SetMargins(10);
        myBarcode.AddAnnotationTextAboveBarcode("Product ID");

        // Export to different stream formats
        Stream pngStream = myBarcode.ToPngStream();
        Stream jpegStream = myBarcode.ToJpegStream();
        Stream pdfStream = myBarcode.ToPdfStream();
        Stream tiffStream = myBarcode.ToTiffStream();

        // Use with HTTP response (ASP.NET Core example)
        // return File(pngStream, "image/png", "barcode.png");
    }

    public static byte[] GenerateQRCodeBytes(string data)
    {
        // Create QR code with error correction
        var qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500);

        // Convert to byte array via stream
        using (var stream = qrCode.ToStream())
        {
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                return memoryStream.ToArray();
            }
        }
    }
}
$vbLabelText   $csharpLabel

Como Escolher o Formato Certo?

Selecione o formato apropriado com base em suas necessidades:

  • PNG: Melhor para uso na web, suporta transparência, compressão sem perda
  • JPEG: Tamanhos de arquivo menores, ideal quando a transparência não é necessária
  • PDF: Perfeito para integração de documentos, relatórios e formatos imprimíveis
  • TIFF: Propósitos de arquivamento de alta qualidade, suporte a várias páginas
  • GIF: Paleta de cores limitada, adequado para códigos de barras simples com animação

Quais São os Cenários Comuns de Processamento de Fluxo?

O processamento de código de barras baseado em fluxo possibilita inúmeras aplicações práticas:

  1. Resposta HTTP Direta: Serve códigos de barras para clientes web sem armazenamento intermediário
  2. Armazenamento Binário em Banco de Dados: Armazene dados de código de barras como campos BLOB
  3. Cache Baseado em Memória: Cache de códigos de barras gerados para cenários de alto desempenho
  4. Encadeamento de Fluxos: Processa códigos de barras através de pipelines de transformação
  5. Processamento em Lote: Gera milhares de códigos de barras sem I/O de disco

Trabalhando com Dados de Fluxo

Ao trabalhar com fluxos, você pode precisar ler códigos de barras de fluxos. Aqui está um exemplo de processamento de ida e volta:

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

public class StreamRoundTrip
{
    public static void ProcessBarcodeStream()
    {
        // Generate barcode and get stream
        var originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128);
        Stream barcodeStream = originalBarcode.ToStream();

        // Read barcode back from stream
        var results = BarcodeReader.Read(barcodeStream);

        foreach (var result in results)
        {
            Console.WriteLine($"Value: {result.Value}");
            Console.WriteLine($"Format: {result.BarcodeType}");
        }

        // Don't forget to dispose of the stream
        barcodeStream.Dispose();
    }
}
using IronBarCode;
using System.IO;
using System.Collections.Generic;

public class StreamRoundTrip
{
    public static void ProcessBarcodeStream()
    {
        // Generate barcode and get stream
        var originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128);
        Stream barcodeStream = originalBarcode.ToStream();

        // Read barcode back from stream
        var results = BarcodeReader.Read(barcodeStream);

        foreach (var result in results)
        {
            Console.WriteLine($"Value: {result.Value}");
            Console.WriteLine($"Format: {result.BarcodeType}");
        }

        // Don't forget to dispose of the stream
        barcodeStream.Dispose();
    }
}
$vbLabelText   $csharpLabel

Considerações sobre o desempenho

Ao exportar códigos de barras como fluxos, considere estas dicas de desempenho:

  • Reutilizar Fluxos: Use MemoryStream com capacidade inicial para melhor desempenho
  • Operações Assíncronas: Use métodos assíncronos ao lidar com grandes volumes
  • Pooling de Fluxos: Implemente pooling de fluxos para operações de alta frequência
  • Seleção de Formato: Escolha os formatos sabiamente—PNG geralmente é mais rápido que PDF

Introdução ao IronBarcode

Para começar a usar a geração de códigos de barras baseada em fluxo em seus projetos, visite nosso guia abrangente de início rápido. A documentação de exportar código de barras como fluxo fornece exemplos adicionais e melhores práticas para fluxos de trabalho baseados em fluxo.

O IronBarcode facilita a criação e exportação de códigos de barras para objetos MemoryStream. Esta abordagem baseada em fluxo oferece desempenho superior, segurança aprimorada e integração perfeita com aplicações modernas nativas da nuvem.

Perguntas frequentes

Como faço para converter um código de barras em um MemoryStream sem salvá-lo em disco?

Com o IronBarcode, você pode converter um código de barras diretamente em um MemoryStream usando o método ToStream(). Basta criar seu código de barras com BarcodeWriter.CreateBarcode() e chamar ToStream() no resultado. Isso gera um fluxo PNG por padrão, sem nenhuma operação de entrada/saída de arquivo.

Quais formatos de imagem posso exportar ao converter códigos de barras em fluxos de dados?

O IronBarcode suporta a exportação de códigos de barras para fluxos em vários formatos. O formato padrão é PNG ao usar o método ToStream(). Você também pode exportar para outros formatos usando métodos específicos projetados para diferentes tipos de imagem, permitindo flexibilidade com base nos requisitos do seu aplicativo.

Por que devo usar a geração de código de barras baseada em fluxo de dados em vez de métodos baseados em arquivos?

A geração de códigos de barras baseada em fluxo com o IronBarcode oferece segurança aprimorada ao evitar arquivos temporários, melhor desempenho por meio de operações diretas na memória, compatibilidade perfeita com a nuvem para ambientes conteinerizados e maior eficiência de recursos, reduzindo o uso de espaço em disco e a sobrecarga do sistema de arquivos.

Posso aplicar estilos personalizados antes de exportar códigos QR como fluxos?

Sim, o IronBarcode permite aplicar estilos personalizados aos códigos QR antes de exportá-los como fluxos. O QRCodeWriter suporta todas as opções de estilo, e o método ToStream() funciona perfeitamente após a aplicação das personalizações desejadas, mantendo a aparência estilizada na saída do fluxo.

Quais são os casos de uso comuns para exportar códigos de barras como MemoryStreams?

O recurso de exportação de fluxo do IronBarcode é ideal para respostas de API da web onde você precisa retornar códigos de barras diretamente em respostas HTTP, armazenamento em banco de dados como blobs binários, anexos de e-mail e integração com serviços em nuvem ou ambientes sem servidor onde o acesso ao sistema de arquivos é restrito.

Como faço para criar um fluxo de código de barras com apenas uma linha de código?

O IronBarcode permite a criação de fluxos de código de barras de uma linha com: BarcodeWriter.CreateBarcode("Seu Valor", BarcodeEncoding.Code128).ToStream(). Isso cria um código de barras com o valor e a codificação especificados e, em seguida, o converte imediatamente em um MemoryStream sem etapas intermediárias.

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.