IronBarcode 操作指南 .NET创建条形码为流 如何在 C# 中将条形码导出为流 Hairil Hasyimi Bin Omar 已更新:2026年1月10日 下载 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 导出为数据流? 一旦您创建了具有所需数值的条形码,请使用 ToStream 方法将生成的条形码转换为 MemoryStream 。 默认格式为 PNG。 即使在应用自定义样式后,此功能也可与 QRCodeWriter 一起使用。 有关所有可用方法的全面文档,请参阅 API Reference。 Export BarCode as 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(); Imports IronBarCode Imports System.IO ' Create one-dimensional barcode Dim barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128) ' Convert barcode to stream Dim barcodeStream As Stream = barcode.ToStream() ' Create QR code Dim qrCode As GeneratedBarcode = QRCodeWriter.CreateQrCode("IronBarcode1234") ' Convert QR code to stream Dim qrCodeStream As Stream = qrCode.ToStream() $vbLabelText $csharpLabel 为什么使用流而不是文件? 使用流消除了对文件系统的依赖,并提供内存处理以获得更好的性能。 这种方法非常适合网络应用程序、API 以及限制创建临时文件或不希望创建临时文件的场景。 基于流的处理方式具有多种优势: 增强安全性:磁盘上没有可能暴露敏感数据的临时文件 更好的性能:直接内存操作比磁盘 I/O 更快 云兼容性:可在容器化和无服务器环境中无缝运行 资源效率:减少磁盘空间使用和文件系统开销 何时应使用 MemoryStream 制作 BarCode? 当您需要在内存中处理条形码、将条形码直接发送至 HTTP 响应或与其他基于流的 API 集成而无需创建临时文件时,请使用 MemoryStream 。 常见情况包括 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() PDF PDF 文档格式 ToPngStream() PNG PNG 图像格式 ToStream() PNG(默认) 默认为PNG图像格式。 接受 AnyBitmap.ImageFormat 枚举字段作为参数,以指定所需的格式 ToTiffStream() TIFF 适用于TIFF图像格式 在各种图像格式中将 BarCode 作为流导出 <! -- 待办事项:在此处添加图片 --> <! -- --> <!--说明:说明代码概念的图表或截图 --> 使用 ToJpegStream 和 ToStream 方法输出 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(); Imports IronBarCode Imports IronSoftware.Drawing Imports System.IO ' Create one-dimensional barcode Private barcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("IronBarcode1234", BarcodeEncoding.Code128) ' Convert barcode to JPEG stream Private barcodeStream As Stream = barcode.ToStream(AnyBitmap.ImageFormat.Jpeg) ' Create QR code Private qrCode As GeneratedBarcode = QRCodeWriter.CreateQrCode("IronBarcode1234") ' Convert QR code to JPEG stream Private qrCodeStream As Stream = qrCode.ToJpegStream() $vbLabelText $csharpLabel 高级流导出示例 本综合示例演示了如何从各种数据类型创建条形码,并将其导出为不同格式的流: 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(); } } } } Imports IronBarCode Imports IronSoftware.Drawing Imports System.IO Imports System.Drawing.Imaging Public Class BarcodeStreamExporter Public Shared Sub ExportMultipleFormats() ' Generate barcode with custom data Dim 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 Dim pngStream As Stream = myBarcode.ToPngStream() Dim jpegStream As Stream = myBarcode.ToJpegStream() Dim pdfStream As Stream = myBarcode.ToPdfStream() Dim tiffStream As Stream = myBarcode.ToTiffStream() ' Use with HTTP response (ASP.NET Core example) ' return File(pngStream, "image/png", "barcode.png") End Sub Public Shared Function GenerateQRCodeBytes(data As String) As Byte() ' Create QR code with error correction Dim qrCode = QRCodeWriter.CreateQrCodeWithLogo(data, "logo.png", 500) ' Convert to byte array via stream Using stream = qrCode.ToStream() Using memoryStream As New MemoryStream() stream.CopyTo(memoryStream) Return memoryStream.ToArray() End Using End Using End Function End Class $vbLabelText $csharpLabel 如何选择正确的格式? 根据您的要求选择合适的格式: 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(); } } 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(); } } Imports IronBarCode Imports System.IO Imports System.Collections.Generic Public Class StreamRoundTrip Public Shared Sub ProcessBarcodeStream() ' Generate barcode and get stream Dim originalBarcode = BarcodeWriter.CreateBarcode("STREAM-TEST-123", BarcodeEncoding.Code128) Dim barcodeStream As Stream = originalBarcode.ToStream() ' Read barcode back from stream Dim results = BarcodeReader.Read(barcodeStream) For Each result In results Console.WriteLine($"Value: {result.Value}") Console.WriteLine($"Format: {result.BarcodeType}") Next ' Don't forget to dispose of the stream barcodeStream.Dispose() End Sub End Class $vbLabelText $csharpLabel 性能考虑 以流形式导出 BarCode 时,请考虑以下性能提示: 重复使用流:使用具有初始容量的 MemoryStream 以获得更好的性能 异步操作:处理大量数据时使用异步方法 流池化:为高频操作实施流池化 格式选择:明智选择格式--PNG 通常比PDF更快 IronBarcode 入门 要开始在您的项目中使用基于流的条形码生成,请访问我们的综合入门指南。 Export barCode as stream documentation 为基于流的工作流提供了更多示例和最佳实践。 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,070,733 | 版本: 2026.2 刚刚发布 免费 NuGet 下载 总下载量:2,070,733 查看许可证