C#でIronBarcodeを使用してストリームとしてバーコードを作成する方法

C#で BarCode をストリームとしてエクスポートする方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcodeは、バーコードを生成し、ファイルI/OなしでMemoryStreamオブジェクトに直接変換し、パフォーマンスとセキュリティを向上させます。 この合理的なアプローチにより、ディスク操作が不要になり、アプリケーションとのシームレスな統合が可能になります。 Web API の構築、バッチ処理の処理、クラウドサービスとの統合のいずれにおいても、ストリームベースの BarCode 生成は、最新のアプリケーションが必要とする柔軟性と効率性を提供します。

. 。 <!コードの概念を示す図またはスクリーンショット -->。

クイックスタート:バーコードのストリームへの即時エクスポート

IronBarcodeを使ってバーコードを生成し、1行のコードで直接MemoryStreamに変換してください。 ファイルシステムは不要です。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronBarcode をインストールします

    PM > Install-Package BarCode

  2. このコード スニペットをコピーして実行します。

    var stream = BarcodeWriter.CreateBarcode("Quick123", BarcodeEncoding.Code128).ToStream();
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronBarcode を使い始めましょう
    arrow pointer


BarCodeをストリームとしてエクスポートするにはどうすればよいですか?

希望する値のバーコードを作成したら、ToStreamメソッドを使用して、生成されたバーコードをMemoryStreamに変換します。 デフォルトのフォーマットはPNGです。 この機能は、カスタム スタイリングを適用した後でも、QRCodeWriterでも動作します。 利用可能なすべてのメソッドに関する包括的なドキュメントについては、API Referenceを参照してください。

ストリーム例として BarCode をエクスポートする

.

. 。 <!コードの概念を示す図またはスクリーンショット -->。

: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 よりも高速です。
  • クラウド互換性:コンテナ環境やサーバーレス環境でもシームレスに動作します。
  • リソース効率:ディスク使用量とファイルシステムのオーバーヘッドを削減します。

BarCodeにMemoryStreamを使用するのはいつですか?

メモリ内で BarCode を処理したり、HTTP レスポンスに直接送信したり、一時ファイルを作成せずに他のストリームベースの API と統合したりする必要がある場合は、MemoryStream を使用してください。 よくあるシナリオは以下のとおりです:

  • Web APIレスポンス:ディスクに保存せずに HTTP レスポンスで直接 BarCode を返します。
  • データベースストレージ: BarCodeデータをバイナリblobとしてデータベースに保存する。
  • メール添付:その場で電子メールに BarCode を生成して添付できます。
  • クラウドストレージ:Azure Blob Storage、AWS S3、または同様のサービスに直接アップロードします。
  • リアルタイム処理:永続化せずにすぐに使用できるバーコードを生成します。

ストリームにエクスポートできる画像形式は?

IronBarcodeはストリームエクスポート用に複数の出力データ形式をサポートしています。 いくつかのメソッドは、BarCodeオブジェクトをMemoryStreamに変換します。 これらの方法はプロセスを簡素化し、希望する画像形式に基づいて選択することができます。 利用可能な方法は以下のとおりです:

方法 形式 翻訳内容
BinaryStreamプロパティ ビットマップ ビットマップ画像としてレンダリングされたバーコードの System.IO.Stream を返します。
ToGifStream()</code GIF GIF画像フォーマットの場合
ToJpegStream()</code JPEG/JPG JPEG/JPG画像フォーマットの場合
ToPdfStream()</code PDF PDFドキュメント形式
ToPngStream()</code PNG PNG画像フォーマットの場合
ToStream()</code PNG(デフォルト) デフォルトでPNG画像形式。 AnyBitmap.ImageFormat列挙フィールドを引数として受け取り、希望するフォーマットを指定します。
ToTiffStream()</code TIFF TIFF画像フォーマットの場合

さまざまな画像形式で BarCode をストリームとしてエクスポートする

. 。 <!コードの概念を示す図またはスクリーンショット -->。

JPEG 画像形式のストリームを出力するには、ToJpegStream および ToStream<//code> メソッドを使用します:

: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.ダイレクト HTTP レスポンス: 中間ストレージなしで Web クライアントに BarCode を提供します。 2.データベース・バイナリ・ストレージ: BLOBフィールドとしてバーコードデータを格納する 3.メモリベースのキャッシュ:高性能シナリオのために生成された BarCode をキャッシュします。 4.ストリームチェイニング:変換パイプラインを通して 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 をストリームとしてエクスポートする場合は、以下のパフォーマンスのヒントを考慮してください:

  • ストリームを再利用するMemoryStreamを初期容量で使用するとパフォーマンスが向上します。
  • 非同期操作:大量のデータを扱うときは非同期メソッドを使用する
  • ストリーム・プーリング: 高頻度処理のためのストリーム・プーリングを実装する。
  • フォーマットの選択:フォーマットを賢く選びましょう。

IronBarcodeを始める

プロジェクトでストリームベースの BarCode 生成を使い始めるには、comprehensive getting started guide をご覧ください。 export barcode as stream documentation では、ストリームベースのワークフローに関する追加の例とベストプラクティスを提供しています。

IronBarcodeはMemoryStreamオブジェクトへのバーコードの作成とエクスポートを簡単にします。 このストリームベースのアプローチは、優れたパフォーマンス、強化されたセキュリティ、最新のクラウドネイティブ・アプリケーションとのシームレスな統合を提供します。

よくある質問

バーコードをディスクに保存せずにMemoryStreamに変換するにはどうすればよいですか?

IronBarcodeでは、ToStream()メソッドを使用してバーコードを直接MemoryStreamに変換することができます。BarCodeWriter.CreateBarcode()でバーコードを作成し、その結果に対してToStream()を呼び出すだけです。これにより、ファイルI/O操作なしでデフォルトでPNGストリームが生成されます。

BarCode をストリームに変換する際にエクスポートできる画像形式は?

IronBarcodeは複数のフォーマットでバーコードをストリームにエクスポートすることができます。ToStream()メソッドを使用した場合のデフォルトフォーマットはPNGです。また、異なる画像タイプ用に設計された特定のメソッドを使用することで、他のフォーマットへのエクスポートも可能で、アプリケーションの要件に応じて柔軟に対応できます。

なぜファイルベースの方法ではなく、ストリームベースのバーコード生成を使用する必要があるのですか?

IronBarcodeによるストリームベースのバーコード生成は、一時ファイルを回避することによるセキュリティの強化、直接メモリ操作によるパフォーマンスの向上、コンテナ化環境のためのシームレスなクラウド互換性、ディスクスペースの使用とファイルシステムのオーバーヘッドを削減することによるリソース効率の向上を提供します。

QR コードをストリームとしてエクスポートする前に、カスタム・スタイルを適用できますか。

はい、IronBarcodeではQRコードをストリームとしてエクスポートする前にカスタムスタイルを適用することができます。QRCodeWriterはすべてのスタイリングオプションをサポートしており、ToStream()メソッドは希望のカスタマイズを適用した後にシームレスに動作し、ストリーム出力でスタイリングされた外観を維持します。

BarCodeをMemoryStreamsとしてエクスポートする一般的な使用例を教えてください。

IronBarcodeのストリームエクスポート機能は、HTTPレスポンスで直接バーコードを返す必要があるWeb APIレスポンス、バイナリblobとしてのデータベースストレージ、電子メール添付、ファイルシステムへのアクセスが制限されているクラウドサービスやサーバーレス環境との統合に最適です。

たった1行のコードでBarCodeストリームを作成するには?

IronBarcodeは1行でバーコードストリームを作成することができます:BarcodeWriter.CreateBarcode("Your Value", BarcodeEncoding.Code128).ToStream().これは、指定した値とエンコーディングでバーコードを作成し、中間ステップなしですぐにMemoryStreamに変換します。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、Javaの知識を磨き、その知識を活用してIron Softwareのチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareのチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はできましたか?
Nuget ダウンロード 2,070,733 | バージョン: 2026.2 リリース