IRONSOFTWAREHOME

How to Export Barcodes as Streams in C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026年6月29日

IronBarcode允许您生成条码并直接转换为MemoryStream对象,而无需文件I/O,从而提高性能和安全性。 这种简化的方法可以消除磁盘操作,实现与应用程序的无缝集成。 无论是构建 Web API、处理批量操作还是与云服务集成,基于流的条形码生成都能提供现代应用程序所需的灵活性和效率。

快速入门:瞬间导出条形码到流

使用IronBarcode生成条码,并一行代码直接转换为MemoryStream。 无需文件系统。

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2复制并运行这段代码。

    var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream();
    C#
  3. 3部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronBarcode
    arrow pointer

如何将 BarCode 导出为数据流?

一旦通过创建了所需值的条码,使用MemoryStream。 默认格式为 PNG。 此功能也适用于QRCodeWriter,即便在应用自定义样式之后。 有关所有可用方法的全面文档,请参阅 API Reference

Export BarCode as Stream 示例

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();

为什么使用流而不是文件?

使用流消除了对文件系统的依赖,并提供内存处理以获得更好的性能。 这种方法非常适合网络应用程序、API 以及限制创建临时文件或不希望创建临时文件的场景。 基于流的处理方式具有多种优势:

  • 增强安全性:磁盘上没有可能暴露敏感数据的临时文件
  • 更好的性能:直接内存操作比磁盘 I/O 更快
  • 云兼容性:可在容器化和无服务器环境中无缝运行
  • 资源效率:减少磁盘空间使用和文件系统开销

何时应使用 MemoryStream 制作 BarCode?

当您需要在内存中处理条码时,使用MemoryStream,将它们直接发送到HTTP响应,或与其他基于流的API集成,而无需创建临时文件。 常见情况包括

  • Web API 响应:直接在 HTTP 响应中返回 BarCode,无需保存到磁盘
  • 数据库存储:在数据库中将条码数据存储为二进制 blob
  • 电子邮件附件:在电子邮件中即时生成和附加 BarCode
  • 云存储:直接上传至 Azure Blob Storage、AWS S3 或类似服务
  • 实时处理:生成条形码,立即使用,无需持久化

哪些图像格式可以导出到 Streams?

IronBarcode 支持多种输出数据格式用于数据流导出。 有几种方法可以将条码对象转换为MemoryStream。 这些方法简化了流程,让您可以根据所需的图像格式进行选择。 可用的方法包括

翻译方法翻译格式说明
二进制流属性位图返回条码渲染为位图图像的System.IO.Stream
ToGifStream()GIF适用于GIF图像格式
ToJpegStream()JPEG/JPG适用于JPEG/JPG图像格式
ToPdfStream()PDFPDF 文档格式
ToPngStream()PNGPNG 图像格式
ToStream()PNG(默认)默认为PNG图像格式。 接受 AnyBitmap.ImageFormat 枚举字段作为参数,以指定所需的格式
ToTiffStream()TIFF适用于TIFF图像格式

在各种图像格式中将 BarCode 作为流导出

使用ToStream方法以JPEG图像格式输出流:

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();

高级流导出示例

本综合示例演示了如何从各种数据类型创建条形码,并将其导出为不同格式的流:

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();
            }
        }
    }
}

如何选择正确的格式?

根据您的要求选择合适的格式:

  • PNG:最适合网络使用,支持透明、无损压缩
  • JPEG:文件尺寸较小,在不需要透明度时非常理想
  • PDF:非常适合文档集成、报告和可打印格式
  • TIFF:高质量存档目的,支持多页面
  • GIF:色调有限,适合带有动画的简单 BarCode

常见的流处理场景有哪些?

基于流的条形码处理可以实现众多实际应用:

1.直接 HTTP 响应:无需中间存储即可向网络客户端提供条形码服务 2.数据库二进制存储:将条形码数据存储为 BLOB 字段 3.基于内存的缓存:为高性能场景缓存生成的 BarCode 4.流连锁:通过转换管道处理 BarCode 5.批量处理:无需磁盘 I/O 即可生成数千个 BarCode

处理流数据

在使用数据流时,您可能需要从数据流中读取条形码。 下面是一个往返处理的例子:

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();
    }
}

性能考虑

以流形式导出 BarCode 时,请考虑以下性能提示:

  • 重用流:使用MemoryStream并具有初始容量以获得更好的性能
  • 异步操作:处理大量数据时使用异步方法
  • 流池化:为高频操作实施流池化
  • 格式选择:明智选择格式--PNG 通常比PDF更快

IronBarcode 入门

要开始在您的项目中使用基于流的条形码生成,请访问我们的综合入门指南Export barCode as stream documentation 为基于流的工作流提供了更多示例和最佳实践。

IronBarcode使创建和导出条码到MemoryStream对象变得简单。 这种基于流的方法提供了卓越的性能、更强的安全性以及与现代云原生应用程序的无缝集成。

常见问题解答

如何将 BarCode 转换为 MemoryStream 而不保存到磁盘?

using IronBarcode,您可以使用 ToStream() 方法将条形码直接转换为 MemoryStream。只需使用 BarcodeWriter.CreateBarcode() 创建条形码,然后在结果上调用 ToStream()。这将默认生成一个 PNG 流,而无需任何文件 I/O 操作。

将 BarCode 转换为数据流时,可以导出哪些图像格式?

IronBarcode 支持将条形码导出为多种格式的数据流。使用 ToStream() 方法时,默认格式为 PNG。您还可以通过使用为不同图像类型设计的特定方法导出为其他格式,从而根据应用程序的要求灵活运用。

为什么要使用基于流的条形码生成方法而不是基于文件的方法?

using IronBarcode 生成基于流的条形码可避免临时文件,从而提高安全性;通过直接内存操作提高性能;无缝兼容容器化环境的云计算;通过减少磁盘空间使用和文件系统开销提高资源效率。

我能否在将 QR 代码导出为流之前应用自定义样式?

是的,IronBarcode 允许您在将 QR 代码导出为流之前对其应用自定义样式。QRCodeWriter 支持所有样式选项,ToStream() 方法在应用您所需的定制后可无缝运行,在流输出中保持样式外观。

将 BarCode 导出为 MemoryStreams 的常见用例有哪些?

IronBarcode 的流导出功能非常适合需要在 HTTP 响应中直接返回条形码的 Web API 响应、以二进制 blob 形式存储的数据库、电子邮件附件以及与云服务或无服务器环境的集成(文件系统访问受限)。

如何仅用一行代码创建条码流?

IronBarcode 可通过以下方式实现单线条码流创建:BarcodeWriter.CreateBarcode("您的值", BarcodeEncoding.Code128).ToStream()。这将用您指定的值和编码创建一个条码,然后立即将其转换为 MemoryStream,无需中间步骤。

How does stream-based barcode generation improve application performance?

Stream-based generation eliminates file I/O by keeping data in memory, which speeds up processes, reduces disk space use, and enhances application scalability and performance.

Is it possible to read barcodes from a stream in IronBarcode?

Yes, IronBarcode allows you to read barcodes from a stream. You can use `BarcodeReader.Read(barcodeStream)` to process the stream for barcode data.

Does IronBarcode support asynchronous operations for large-scale stream processing?

Yes, IronBarcode supports asynchronous operations, which is beneficial when dealing with large volumes of barcode data for better performance and resource management.

How do I ensure efficient memory usage when exporting barcodes to streams?

To ensure efficient memory usage, consider reusing streams, setting initial capacities for `MemoryStream`, and implementing stream pooling for repetitive high-frequency operations.

准备开始了吗?

Nuget Downloads 2,422,100版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 "IronBarcode"
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并将 IronBarCode 解压到解决方案目录中的 ~/Libs 等位置
  2. 在 Visual Studio 解决方案资源管理器中,右键单击引用。选择浏览,"IronBarcode.dll"

许可 $999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户