C#でストリームからバーコードを読み取る方法
IronBarcodeは、 .NETアプリケーション内のMemoryStreamオブジェクトから直接バーコードを読み取るため、ストリームを事前にディスクに保存する必要がありません。これにより、メモリに保存された画像とPDFドキュメントの両方のストリームから、効率的なバーコード処理が可能になります。
MemoryStream は、メモリに格納されたストリームを読み取ったり、書き込んだりする.NET Frameworkクラスです。 物理ファイルなしでデータを操作し、代わりにメモリに保存します。 このアプローチは、ウェブアプリケーション、API、またはバーコードデータをバイト配列として受信したり、一時ファイルを作成せずに画像を処理する必要があるシナリオに適しています。
画像ファイルやPDFファイルからバーコードを読み取るだけでなく、IronBarcodeはストリームからバーコードを読み取ることもできます。 このライブラリは、PDF文書または画像ストリームを入力として受け入れ、バーコード読み取り結果を出力します。 この機能は、データベース、ウェブアップロード、またはメモリキャッシュされたコンテンツからのデータ処理に適しています。
クイックスタート: 画像ストリームから直接バーコードを読み取る
IronBarcodeは2行のコードであらゆるイメージストリームからバーコードを読み取ります。 この例では、.NET でのストリームベースの BarCode 読み取りを示します。
最小限のワークフロー(5ステップ)
- 画像ストリームからバーコードを読み取る
- PDFドキュメントストリームからバーコードを読み取る
画像ストリームから 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
複数の画像ストリームを処理するにはどうすればよいですか?
上記のコードは、 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());
}
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
複数の 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
}
Imports System.IO
Using pdfStream As New MemoryStream(pdfBytes)
Dim results = BarcodeReader.ReadPdf(pdfStream)
' Process results
End Using
特定のニーズに合わせて、ライブラリをお試しください。 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はカスタマイズ可能なバーコードリーダー設定を提供し、単一のストリームまたはコレクションに保存された複数のストリームを処理する場合でも、特定のユースケースに合わせて読み取りプロセスを最適化することができます。

