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

C&numでストリームからBarCodeを読み取る方法

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文書または画像ストリームを入力として受け入れ、バーコード読み取り結果を出力します。 この機能は、データベース、ウェブアップロード、またはメモリキャッシュされたコンテンツからのデータ処理に適しています。

クイックスタート: イメージストリームから直接 BarCode を読み取る

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

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

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

    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());
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
Imports System.IO

Friend Class BarcodeFromImageStream
	Shared Sub Main(ByVal args() As String)
		' Create a list of MemoryStreams to store image streams
		Dim imageStreams As New List(Of MemoryStream) From {
			New MemoryStream(File.ReadAllBytes("example1.png")),
			New MemoryStream(File.ReadAllBytes("example2.png"))
		}

Dim IronBarCode As using
Using IronSoftware.Drawing
	Dim System As using
	Using System.Collections.Generic
		Using System.IO
			
			Dim list As New List(Of MemoryStream)()
			list.Add(AnyBitmap.FromFile("image1.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image2.jpg").ToStream())
			list.Add(AnyBitmap.FromFile("image3.png").ToStream())
			
			Dim myBarcode = BarcodeReader.Read(list)
			
			For Each barcode In myBarcode
				Console.WriteLine(barcode.ToString())
			Next barcode
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

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

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

複数のストリームを処理する場合、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());
}
Imports IronBarCode
Imports IronPdf
Imports System
Imports System.IO

Private document As MemoryStream = PdfDocument.FromFile("file_path.pdf").Stream

Private myBarcode = BarcodeReader.ReadPdf(document)

For Each value In myBarcode
	Console.WriteLine(value.ToString())
Next value
$vbLabelText   $csharpLabel

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

PDF 文書から MemoryStream<//code> オブジェクトとして BarCode を読み取ることは、画像から読み取ることに似ています。 重要な違いはメソッドです: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
}
Imports System.IO

Using pdfStream As New MemoryStream(pdfBytes)
    Dim results = BarcodeReader.ReadPdf(pdfStream)
    ' Process results
End Using
$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,070,733 | バージョン: 2026.2 リリース