C#でストリームからバーコードを読む方法

How to Read Barcodes from Streams with C

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

IronBarcodeは、 .NETアプリケーション内のMemoryStreamオブジェクトから直接バーコードを読み取るため、ストリームを事前にディスクに保存する必要がありません。これにより、メモリに保存された画像とPDFドキュメントの両方のストリームから、効率的なバーコード処理が可能になります。

MemoryStream は、メモリに格納されたストリームを読み取ったり、書き込んだりする.NET Frameworkクラスです。 物理ファイルなしでデータを操作し、代わりにメモリに保存します。 このアプローチは、ウェブアプリケーション、API、またはバーコードデータをバイト配列として受信したり、一時ファイルを作成せずに画像を処理する必要があるシナリオに適しています。

画像ファイルPDFファイルからバーコードを読み取るだけでなく、IronBarcodeはストリームからバーコードを読み取ることもできます。 このライブラリは、PDF文書または画像ストリームを入力として受け入れ、バーコード読み取り結果を出力します。 この機能は、データベース、ウェブアップロード、またはメモリキャッシュされたコンテンツからのデータ処理に適しています。

クイックスタート: 画像ストリームから直接バーコードを読み取る

IronBarcodeは2行のコードであらゆるイメージストリームからバーコードを読み取ります。 この例では、.NET でのストリームベースの BarCode 読み取りを示します。

  1. IronBarcode をNuGetパッケージマネージャでインストール

    PM > Install-Package BarCode
  2. このコード スニペットをコピーして実行します。

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
  3. 実際の環境でテストするためにデプロイする

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

    arrow pointer

画像ストリームから BarCode を読み取るには?

なぜファイルの代わりにメモリストリームを使用するのですか

メモリ・ストリームには、ファイル・ベースの操作に比べていくつかの利点があります。 ディスクI/Oのオーバーヘッドをなくし、アプリケーションを高速化します。 機密バーコードデータがディスクに触れることがないため、セキュリティが向上します。 また、ディスクアクセスが制限されていたり、高価であったりするクラウド環境にも適しています。IronBarcode のasyncおよびマルチスレッド機能と組み合わせることで、複数のストリームを同時に処理し、最大のパフォーマンスを得ることができます。

このセクションでは、 IronBarcodeを使用して、List<MemoryStream> に保存されているイメージ ストリームと複数のイメージ ストリームを読み取る方法を示します。 以下のコードには、プロセスを説明するためのコメントが含まれています:

どのような画像形式がサポートされていますか?

IronBarcodeはストリームからの読み取り時に複数の画像フォーマットをサポートします:JPEG、PNG、GIF、TIFF、BMP、SVGです。 この柔軟性により、ソース形式に関係なくバーコード画像を処理することができます。 最適な結果を得るには、BarCodeリーダーの設定を使用して、読み取りプロセスを微調整してください。

using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using System;
using System.Collections.Generic;
using System.IO;

class BarcodeFromImageStream
{
    static void Main(string[] args)
    {
        // Create a list of MemoryStreams to store image streams
        List<MemoryStream> imageStreams = new List<MemoryStream>
        {
            // Example of adding an existing MemoryStream object to the list
            new MemoryStream(File.ReadAllBytes("example1.png")),
            new MemoryStream(File.ReadAllBytes("example2.png"))
        };

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}
$vbLabelText   $csharpLabel

複数の画像ストリームを処理するにはどうすればよいですか?

上記のコードは、 IronBarcode がBarcodeReader.Read() メソッドで単一の MemoryStream オブジェクトまたは MemoryStream オブジェクトのリストを受け入れることを示しています。 この例では、画像ファイルを MemoryStream オブジェクトに変換し、ストリームから直接バーコードを読み取ります。

複数のストリームを処理する場合、IronBarcodeは読み取り速度オプションを効率的に使用します。 最大限の正確さが必要か、最速の処理時間が必要かなど、ニーズに応じて読む速度を調整します。単一のストリームから複数のバーコードを読み取る場合、IronBarcodeは自動的に検出し、見つかったすべてのバーコードを返します。

ストリーム中の不完全な画像や低画質画像の精度を高めるには、処理前に画像補正フィルターを適用してください。 これにより、BarCodeの認識率が大幅に向上します。

どのように PDF ドキュメント ストリームから BarCode を読み取りますか?

なぜRead()の代わりにReadPdf()を使うのですか?

ReadPdf() メソッドは PDF ドキュメントに特化して最適化されており、汎用的な Read() メソッドよりも優れた利点があります。 マルチページドキュメント、ベクターグラフィックス、埋め込み画像など、PDF特有の機能を効率的に処理します。 このメソッドは、すべてのPDFページを自動的に処理し、さまざまなPDFフォーマットと圧縮タイプを扱います。包括的な機能については、バーコードを読むチュートリアルを参照してください。

このセクションでは、 IronBarcodeを使用して PDF ドキュメント ファイルを MemoryStream オブジェクトまたは PDF ドキュメント ストリームのリストとして読み取る方法を説明します。 コードはこちらです:

複数の PDF ドキュメントについてはどうですか?

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}
$vbLabelText   $csharpLabel

複数の PDF ストリームを効率的に処理するには?

PDF ドキュメントからバーコードを MemoryStream オブジェクトとして読み取ることは、画像からの読み取りに似ています。 主な違いは方法です: BarcodeReader.ReadPdf() は PDF ドキュメントを特に処理します。 この例では、 IronPDFを使用して PDF ドキュメントを MemoryStream オブジェクトに変換します。

複数の PDF ドキュメントの場合は、BarcodeReader.ReadPdf() に渡す前に、すべての PDF を 1 つのドキュメント ストリームに結合します。 このアプローチは、各PDFを個別に処理するよりも効率的に処理し、メモリのオーバーヘッドを削減します。 PDF固有のバーコードリーダー設定を構成して、ドキュメントの読み取りを最適化します。

高度なシナリオでは、特定のページまたはPDF領域を処理します。 IronBarcodeは、ページ範囲を指定し、バーコードが表示される領域をターゲットとして、ページ内の領域を切り取ることができます。 これにより、大きな文書の処理速度が向上します。

運用環境でストリームを使用する場合は、メモリ リークを防ぐために、MemoryStream オブジェクトを適切に破棄してください。 using ステートメントは自動廃棄を保証します:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}
$vbLabelText   $csharpLabel

あなたの特定のニーズに合わせて、ライブラリを試してみてください。 IronBarcodeの柔軟なAPIは、検出感度の調整から予想されるバーコードフォーマットの指定まで、広範囲な読み取りプロセスのカスタマイズを可能にします。

よくある質問

最初にディスクに保存せずに、ストリームから BarCode を読み取る方法を教えてください。

IronBarcodeを使用すると、ディスクに保存せずにMemoryStreamオブジェクトから直接バーコードを読み取ることができます。単にストリームをBarcodeReader.Read()メソッドに渡すだけです。この方法はディスクI/Oのオーバーヘッドをなくし、ウェブアップロード、データベース、APIからの画像を処理するのに理想的です。

バーコードリーダーは、ストリーム処理時にどのような画像フォーマットをサポートしていますか?

IronBarcodeはストリームからの読み込み時にJPEG、PNG、GIF、TIFF、BMP、SVGなど複数の画像フォーマットをサポートします。この柔軟性により、フォーマットの変換なしに様々なソースからのバーコード画像を処理することができます。

複数のバーコード画像ストリームを同時に処理できますか?

はい、IronBarcodeは非同期処理とマルチスレッド機能をサポートしており、複数のバーコードストリームを同時に処理して最高のパフォーマンスを発揮することができます。これは特にメモリからの一括バーコード読み取り操作を処理する場合に便利です。

ファイルベースの BarCode 読み取りよりもメモリストリームを使用する利点は何ですか?

IronBarcodeによるメモリストリーム処理は、ディスクI/Oのオーバーヘッドを排除することでより高速なパフォーマンスを提供し、機密データがディスクストレージに触れることがないためセキュリティが強化され、ディスクアクセスが制限されていたり高価であったりするクラウド環境との互換性が向上します。

PDF ドキュメントストリームから BarCode を読み取る方法を教えてください。

IronBarcodeは画像とPDFドキュメントの両方のストリームからバーコードを読み取ることができます。単にPDF MemoryStreamをBarCodeReader.Read()メソッドに渡すだけで、PDFページ内にあるすべてのバーコードを抽出し、デコードします。

ストリームを使用する場合、BarCode 読み取りプロセスを微調整することは可能ですか?

はい、IronBarcodeはカスタマイズ可能なバーコードリーダー設定を提供し、単一のストリームまたはコレクションに保存された複数のストリームを処理する場合でも、特定のユースケースに合わせて読み取りプロセスを最適化することができます。

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

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package BarCode
サンプルを実行する 文字列が BarCode になるのを見る。