IronBarcode 操作指南 .NET创建条形码为流 如何在 C# 中将条形码导出为流 Hairil Hasyimi Bin Omar 已更新:一月 10, 2026 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronBarcode 允许您生成条形码并将其直接转换为 MemoryStream 对象,而无需文件 I/O,从而提高了性能和安全性。 这种简化的方法可以消除磁盘操作,实现与应用程序的无缝集成。 无论是构建 Web API、处理批量操作还是与云服务集成,基于流的条形码生成都能提供现代应用程序所需的灵活性和效率。 <! -- 待办事项:在此处添加图片 --> <! -- --> <!--说明:说明代码概念的图表或截图 --> 快速开始:立即导出条形码到流 使用 IronBarcode 生成条形码并将其直接转换为 MemoryStream 只需一行代码。 无需文件系统。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronBarcode PM > Install-Package BarCode 复制并运行这段代码。 var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream(); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronBarcode,免费试用! 免费试用30天 最小工作流程(5 个步骤) 下载C#库以导出条形码为流 从输入值创建各种条形码类型 将生成的条形码转换为流 使用特定的方法将不同的图像格式导出为流 对流数据进行进一步处理 如何将 BarCode 导出为数据流? 一旦您[创建了具有所需数值的条形码](https://ironsoftware.com/csharp/barcode/how-to/create-barcode-images/),请使用 `ToStream` 方法将生成的条形码转换为 `MemoryStream` 。 默认格式为 PNG。 即使在[应用自定义样式](https://ironsoftware.com/csharp/barcode/how-to/customize-qr-code-style/)后,此功能也可与 `QRCodeWriter` 一起使用。 有关所有可用方法的全面文档,请参阅 [API Reference](https://ironsoftware.com/csharp/barcode/object-reference/api/)。 ### Export BarCode as Stream 示例 <!--说明:说明代码概念的图表或截图 --> ```csharp :path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-stream.cs ``` 为什么使用流而不是文件? 使用流消除了对文件系统的依赖,并提供内存处理以获得更好的性能。 这种方法非常适合网络应用程序、API 以及限制创建临时文件或不希望创建临时文件的场景。 基于流的处理方式具有多种优势: - **增强安全性**:磁盘上没有可能暴露敏感数据的临时文件 - **更好的性能**:直接内存操作比磁盘 I/O 更快 - **云兼容性**:可在容器化和无服务器环境中无缝运行 - **资源效率**:减少磁盘空间使用和文件系统开销 何时应使用 MemoryStream 制作 BarCode? 当您需要在内存中处理条形码、将条形码直接发送至 HTTP 响应或与其他基于流的 API 集成而无需创建临时文件时,请使用 `MemoryStream` 。 常见情况包括 - **Web API 响应**:直接在 HTTP 响应中返回 BarCode,无需保存到磁盘 - **数据库存储**:在数据库中将条码数据存储为二进制 blob - **电子邮件附件**:在电子邮件中即时生成和附加 BarCode - **云存储**:直接上传至 Azure Blob Storage、AWS S3 或类似服务 - **实时处理**:生成条形码,立即使用,无需持久化 哪些图像格式可以导出到 Streams? IronBarcode 支持多种[输出数据格式](https://ironsoftware.com/csharp/barcode/how-to/output-data-formats/)用于数据流导出。 有几种方法可将条码对象转换为 `MemoryStream` 。 这些方法简化了流程,让您可以根据所需的图像格式进行选择。 可用的方法包括 |翻译方法|翻译格式|说明| |--------|--------|-------------| |**二进制流**属性|位图|返回渲染为位图图像的条形码的 `System.IO.Stream`| |<代码>ToGifStream()代码|GIF|适用于GIF图像格式| |<代码>ToJpegStream()代码|JPEG/JPG|适用于JPEG/JPG图像格式| |<代码>ToPdfStream()代码|PDF|PDF>ToPngStream()代码|PNG|PNG>ToStream()代码|PNG(默认)|默认为PNG图像格式。>ToTiffStream()代码|TIFF|适用于TIFF图像格式| ###> <!--说明:说明代码概念的图表或截图 --> 使用 `ToJpegStream` 和 `ToStream` 方法输出 JPEG 图像格式的流: ```csharp :path=/static-assets/barcode/content-code-examples/how-to/create-barcode-as-stream-to-jpeg-stream.cs ``` ### 高级流导出示例 本综合示例演示了如何[从各种数据类型](https://ironsoftware.com/csharp/barcode/how-to/create-barcode-from-data/)创建条形码,并将其导出为不同格式的流: ```csharp 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 ### 处理流数据 在使用数据流时,您可能需要[从数据流中读取条形码](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-streams/)。 下面是一个往返处理的例子: ```csharp 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 入门 要开始在您的项目中使用基于流的条形码生成,请访问我们的[综合入门指南](https://ironsoftware.com/csharp/barcode/docs/)。 [Export barCode as stream documentation](https://ironsoftware.com/csharp/barcode/how-to/export-barcode-as-stream/) 为基于流的工作流提供了更多示例和最佳实践。 IronBarcode 使创建和导出条形码到 `MemoryStream` 对象变得简单。 这种基于流的方法提供了卓越的性能、更强的安全性以及与现代云原生应用程序的无缝集成。 常见问题解答 如何将 BarCode 转换为 MemoryStream 而不保存到磁盘? 使用 IronBarcode,您可以使用 ToStream() 方法将条形码直接转换为 MemoryStream。只需使用 BarcodeWriter.CreateBarcode() 创建条形码,然后在结果上调用 ToStream()。这将默认生成一个 PNG 流,而无需任何文件 I/O 操作。 将 BarCode 转换为数据流时,可以导出哪些图像格式? IronBarcode 支持将条形码导出为多种格式的数据流。使用 ToStream() 方法时,默认格式为 PNG。您还可以通过使用为不同图像类型设计的特定方法导出为其他格式,从而根据应用程序的要求灵活运用。 为什么要使用基于流的条形码生成方法而不是基于文件的方法? 使用 IronBarcode 生成基于流的条形码可避免临时文件,从而提高安全性;通过直接内存操作提高性能;无缝兼容容器化环境的云计算;通过减少磁盘空间使用和文件系统开销提高资源效率。 我能否在将 QR 代码导出为流之前应用自定义样式? 是的,IronBarcode 允许您在将 QR 代码导出为流之前对其应用自定义样式。QRCodeWriter 支持所有样式选项,ToStream() 方法在应用您所需的定制后可无缝运行,在流输出中保持样式外观。 将 BarCode 导出为 MemoryStreams 的常见用例有哪些? IronBarcode 的流导出功能非常适合需要在 HTTP 响应中直接返回条形码的 Web API 响应、以二进制 blob 形式存储的数据库、电子邮件附件以及与云服务或无服务器环境的集成(文件系统访问受限)。 如何仅用一行代码创建条码流? IronBarcode 可通过以下方式实现单线条码流创建:BarcodeWriter.CreateBarcode("您的值", BarcodeEncoding.Code128).ToStream()。这将用您指定的值和编码创建一个条码,然后立即将其转换为 MemoryStream,无需中间步骤。 Hairil Hasyimi Bin Omar 立即与工程团队聊天 软件工程师 如所有伟大的工程师一般,Hairil 是个热心的学习者。他正在提高对 C#、Python 和 Java 的知识,并利用这些知识为 Iron Software 团队成员增值。Hairil 从马来西亚的玛拉工业大学加入 Iron Software 团队,获得化学与工艺工程学士学位。 准备开始了吗? Nuget 下载 2,002,059 | 版本: 2025.12 刚刚发布 免费 NuGet 下载 总下载量:2,002,059 查看许可证