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、處理批量操作,還是與雲端服務整合,基於流的條碼生成提供了現代應用程式所需的靈活性和效率。

Quickstart: 即時匯出條碼至流

使用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

如何將條碼匯出為流?

一旦您透過建立了條碼並具有所需的值,使用MemoryStream。 預設格式為PNG。 此功能還適用於QRCodeWriter,即使在應用自定義樣式後也是如此。 有關所有可用方法的完整文件,請參閱API Reference

匯出條碼為流範例

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

為什麼要使用流而不是文件?

使用流消除了文件系統的依賴,並提供了記憶體中的處理以提高性能。 這種方法適合於Web應用程式、API以及需要限制或不希望建立臨時文件的情況。 基於流的處理提供了幾個優勢:

  • 增強安全性:磁碟上沒有臨時文件可能暴露敏感資料
  • 更好的性能:直接記憶體操作比磁碟I/O更快
  • 雲端相容性:在容器化和無伺服器環境中無縫運行
  • 資源效率:減少磁碟空間使用和文件系統開銷

我應該何時為條碼使用MemoryStream?

當您需要在記憶體中處理條碼,將其直接發送到HTTP響應,或者與其他基於流的API整合而不建立臨時文件時,請使用MemoryStream。 常見的場景包括:

  • Web API響應:直接在HTTP響應中返回條碼,無需保存到磁碟
  • 資料庫儲存:將條碼資料儲存為二進位大物件在資料庫中
  • 電子郵件附件:即時生成並附加條碼到電子郵件
  • 雲端儲存:直接上傳到Azure Blob儲存、AWS S3或類似服務
  • 即時處理:生成條碼以便立即使用而不需持續性保存

我可以將哪些影像格式匯出到流中?

IronBarcode支持多種輸出資料格式以進行流匯出。 有一些方法將條碼物件轉換為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()TIFF用於TIFF影像格式

以多種影像格式匯出條碼為流

使用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:有限的色彩調整,適合簡單條碼與動畫

常見的流處理場景有哪些?

基於流的條碼處理啟用眾多實際應用:

  1. 直接HTTP響應:為Web客戶端提供條碼,無需中間儲存
  2. 資料庫二進位儲存:將條碼資料儲存為BLOB欄位
  3. 基於記憶體的快取:為高效能場景快取生成的條碼
  4. 流連結:透過轉換管道處理條碼
  5. 批量處理:生成成千上萬的條碼而無需磁碟I/O

處理流資料

處理流時,您可能需要從流中讀取條碼。 以下是迴圈處理的一個例子:

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

性能考量

匯出條碼為流時,請考慮以下性能提示:

  • 重用流:使用具有初始容量的MemoryStream以獲得更好性能
  • 非同步操作:處理大容量時使用非同步方法
  • 流池:為高頻操作實施流池
  • 格式選擇:明智地選擇格式,PNG通常比PDF更快

使用IronBarcode入門

要開始在您的專案中使用基於流的條碼生成,請存取我們的綜合入門指南條碼匯出為流文件提供了其他範例和基於流工作流程的最佳實踐。

IronBarcode讓建立和匯出條碼到MemoryStream物件變得簡單。 此基於流的方式提供了卓越的性能,增強的安全性,並與現代雲原生應用程式的無縫整合。

常見問題

如何在不將條碼儲存到磁碟的情況下將其轉換為MemoryStream?

使用IronBarcode,您可以直接使用ToStream()方法將條碼轉換為MemoryStream。只需用BarcodeWriter.CreateBarcode()建立您的條碼,然後對結果呼叫ToStream()。預設情況下,這會生成不進行任何文件I/O操作的PNG流。

轉換條碼為流時,我可以匯出哪種影像格式?

IronBarcode支持將條碼匯出為多種格式的流。使用ToStream()方法時,預設格式為PNG。您也可以通過為不同影像型別設計的特定方法匯出至其他格式,以適應應用程式的需求。

為什麼應該使用基於流的條碼生成,而非基於文件的方法?

使用IronBarcode的基於流的條碼生成方法能增強安全性,避免臨時文件,通過直接的記憶體操作提高效能,與容器環境的無縫雲端相容性,並通過減少磁碟空間和文件系統負擔來提高資源效率。

在將QR碼匯出為流之前,我可以應用自定樣式嗎?

是的,IronBarcode允許您在將QR碼匯出為流之前應用自定樣式。QRCodeWriter支持所有樣式選項,並且ToStream()方法在應用您所需的定製後無縫運行,保持了流輸出的樣式外觀。

匯出條碼為MemoryStreams的常見使用案例是什麼?

IronBarcode的流匯出功能非常適合需要在HTTP回應中直接返回條碼的Web API回應、作為二進位資料塊的資料庫儲存、電子郵件附件,以及檔案系統存取受限的雲端服務或無服務環境中的整合。

如何在一行程式碼中建立條碼流?

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# NuGet程式庫,用於PDF
通過NuGet安裝

版本: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. 在解決方案資源管理器中,右鍵點擊References,管理NuGet包
  2. 選擇瀏覽並搜尋"IronBarCode"
  3. 選擇包並安裝
C# PDF DLL
下載DLL

版本: 2026.9

  1. 下載並解壓IronBarCode至您的Solution目錄中的~/Libs等位置
  2. 在Visual Studio解決方案資源管理器中右鍵點擊References,選擇瀏覽,"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天試用金鑰
無需信用卡或帳戶建立