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、處理批次作業或與雲端服務整合,以流為基礎的 BarCode 生成都能提供現代應用程式所需的彈性與效率。 <! -- --> <!--說明:說明程式碼概念的圖表或截圖 --> 快速入門:立即將條碼匯出到串流 使用 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。 將 BarCode 匯出為 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 為何使用串流而非檔案? 使用串流可消除檔案系統的依賴性,並提供記憶體內處理,以獲得更好的效能。 此方法適用於 Web 應用程式、API,以及限制或不希望建立臨時檔案的情況。 以流為基礎的處理方式具有多項優點: 增強安全性:磁碟上沒有可能暴露敏感資料的暫存檔案 更佳的效能:直接記憶體操作比磁碟 I/O 更快 雲端相容性:可在容器化與無伺服器環境中無縫運作 資源效率:減少磁碟空間使用量和檔案系統開銷 何時應該使用 MemoryStream 來處理 BarCode? 當您需要在記憶體中處理條碼時,請使用 MemoryStream ,直接將條碼傳送至 HTTP 回應,或與其他基於串流的 API 整合,而無需建立臨時檔案。 常見的情況包括 Web API 回應:直接在 HTTP 回應中傳回 BarCode,無須儲存至磁碟 資料庫儲存:將條碼資料儲存為資料庫中的二進位 blob 電子郵件附件:在電子郵件中即時產生和附加 BarCode 雲端儲存:直接上傳至 Azure Blob Storage、AWS S3 或類似服務 即時處理:生成條碼以供立即使用,無需持久化 我可以將哪些影像格式匯出到 Streams? IronBarcode 支援多種輸出資料格式,用於串流匯出。 有幾個方法可以將 BarCode 物件轉換成 MemoryStream 。 這些方法簡化了流程,讓您可以根據所需的圖像格式進行選擇。 可用的方法包括 翻譯方法 格式 說明 BinaryStream 屬性 位圖 返回一個 System.IO.Stream 的條碼渲染為位圖圖像 ToGifStream() GIF 適用於GIF影像格式 ToJpegStream() JPEG/JPG 適用於JPEG/JPG影像格式 ToPdfStream() PDF 適用於PDF文件格式 ToPngStream() PNG 適用於PNG影像格式 ToStream() PNG (預設) 預設為PNG影像格式。 接受 AnyBitmap.ImageFormat 枚舉欄位做為參數,以指定所需的格式 ToTiffStream() 多倫多國際電影節 適用於 多倫多國際電影節 影像格式 在各種影像格式中將 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 進階流匯出範例 此綜合範例示範如何 從各種資料類型建立 BarCode 並將其匯出為不同格式的串流: 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 哪些是常見的串流處理情境? 基於流的 BarCode 處理可實現許多實際應用: 1.Direct HTTP Response:無需中間儲存,即可將條碼提供給 Web 客戶端 2.資料庫二進位儲存:將條碼資料儲存為 BLOB 欄位 3.以記憶體為基礎的快取:針對高效能方案快取已產生的 BarCode 4.Stream Chaining:透過轉換管道處理 BarCode 5.批次處理:無需磁碟 I/O 即可產生數以千計的 BarCode 使用串流資料工作 當使用串流工作時,您可能需要從串流讀取 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 匯出為串流時,請考慮這些效能提示: 重複使用 Streams:使用具有初始容量的 MemoryStream 以獲得更好的效能 同步操作:處理大量資料時使用 async 方法 Stream Pooling:為高頻操作實施流池化 格式選擇:明智地選擇格式-PNG 通常比PDF快 開始使用 IronBarcode 若要開始在您的專案中使用以流為基礎的 BarCode 產生功能,請造訪我們的 全面入門指南。 export barCode as stream documentation 提供了基於流的工作流程的其他範例和最佳實務。 IronBarcode 可讓您輕鬆地建立條碼並將其匯出至 MemoryStream 物件。 這種以流為基礎的方法提供優異的效能、更強的安全性,以及與現代雲端原生應用程式的無縫整合。 常見問題解答 如何將 BarCode 轉換為 MemoryStream 而不儲存至磁碟? 使用 IronBarcode,您可以使用 ToStream() 方法直接將條碼轉換為 MemoryStream。只需使用 BarcodeWriter.CreateBarcode() 創建您的條碼,並在結果上呼叫 ToStream()。這會在預設情況下產生一個 PNG 流,而不需要任何檔案 I/O 操作。 將 BarCode 轉換為串流時,可以匯出哪些影像格式? IronBarcode 支援將條碼匯出成多種格式的串流。當使用 ToStream() 方法時,預設格式為 PNG。您也可以使用專為不同圖像類型設計的特定方法匯出成其他格式,以根據您應用程式的需求提供彈性。 為什麼我應該使用基於流的 BarCode 產生方法,而不是基於檔案的方法? 使用 IronBarcode 生成基于流的条形码可通过避免临时文件来增强安全性,通过直接内存操作来提高性能,为容器化环境提供无缝云兼容性,以及通过减少磁盘空间使用和文件系统开销来提高资源效率。 我可以在匯出 QR 碼為串流之前套用自訂樣式嗎? 是的,IronBarcode 允許您在輸出 QR 代碼為串流之前,將自訂的樣式套用在 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 從馬來西亞的 Universiti Teknologi MARA 大學加入 Iron Software 團隊,畢業於該校的化學與流程工程學系,並取得學士學位。 準備好開始了嗎? Nuget 下載 2,070,733 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:2,070,733 查看許可證