How to Read Barcodes from Streams with C#
IronBarcodeは.NETアプリケーション内でMemoryStreamオブジェクトから直接バーコードを読み取ります。これにより、ストリームをディスクに保存する必要がなく、メモリ内に保存された画像やPDFドキュメントストリームから効率的にバーコードを処理できます。
MemoryStreamは、メモリに保存されたストリームから読み書きする.NET Frameworkクラスです。 物理ファイルなしでデータを操作し、代わりにメモリに保存します。 このアプローチは、ウェブアプリケーション、API、またはバーコードデータをバイト配列として受信したり、一時ファイルを作成せずに画像を処理する必要があるシナリオに適しています。
画像ファイルやPDFファイルからバーコードを読み取るだけでなく、IronBarcodeはストリームからバーコードを読み取ることもできます。 このライブラリは、PDF文書または画像ストリームを入力として受け入れ、バーコード読み取り結果を出力します。 この機能は、データベース、ウェブアップロード、またはメモリキャッシュされたコンテンツからのデータ処理に適しています。
クイックスタート: 画像ストリームからバーコードを直接読み取るIronBarcodeは2行のコードであらゆるイメージストリームからバーコードを読み取ります。 この例では、.NET でのストリームベースの BarCode 読み取りを示します。
-
1Install IronBarcode with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
var result = IronBarCode.BarcodeReader.Read(myImageStream); Console.WriteLine(result[0].Text);C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronBarcode を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- 画像ストリームからバーコードを読み取る
- PDFドキュメントストリームからバーコードを読み取る
画像ストリームから BarCode を読み取るには?
なぜファイルの代わりにメモリストリームを使用するのですか
メモリ・ストリームには、ファイル・ベースの操作に比べていくつかの利点があります。 ディスクI/Oのオーバーヘッドをなくし、アプリケーションを高速化します。 機密バーコードデータがディスクに触れることがないため、セキュリティが向上します。 また、ディスクアクセスが制限されていたり、高価であったりするクラウド環境にも適しています。IronBarcode のasyncおよびマルチスレッド機能と組み合わせることで、複数のストリームを同時に処理し、最大のパフォーマンスを得ることができます。
このセクションでは、IronBarcodeを使用してList<MemoryStream>に保存された画像ストリームと複数の画像ストリームを読み取る方法を示します。 以下のコードには、プロセスを説明するためのコメントが含まれています:
どのような画像形式がサポートされていますか?
IronBarcodeはストリームからの読み取り時に複数の画像フォーマットをサポートします:JPEG、PNG、GIF、TIFF、BMP、SVGです。 この柔軟性により、ソース形式に関係なくバーコード画像を処理することができます。 最適な結果を得るには、BarCodeリーダーの設定を使用して、読み取りプロセスを微調整してください。
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 IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.IO
Private 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複数の画像ストリームを処理するにはどうすればよいですか?
上記のコードは、IronBarcodeがBarcodeReader.Read()メソッドで受け入れることを示しています。 この例では、画像ファイルをMemoryStreamオブジェクトに変換し、ストリームから直接バーコードを読み取ります。
複数のストリームを処理する場合、IronBarcodeは読み取り速度オプションを効率的に使用します。 最大限の正確さが必要か、最速の処理時間が必要かなど、ニーズに応じて読む速度を調整します。単一のストリームから複数のバーコードを読み取る場合、IronBarcodeは自動的に検出し、見つかったすべてのバーコードを返します。
ストリーム中の不完全な画像や低画質画像の精度を高めるには、処理前に画像補正フィルターを適用してください。 これにより、BarCodeの認識率が大幅に向上します。
どのように PDF ドキュメント ストリームから BarCode を読み取りますか?
Read()の代わりに使用する理由
Read()メソッドよりも利点があります。 マルチページドキュメント、ベクターグラフィックス、埋め込み画像など、PDF特有の機能を効率的に処理します。 このメソッドは、すべてのPDFページを自動的に処理し、さまざまなPDFフォーマットと圧縮タイプを扱います。包括的な機能については、バーコードを読むチュートリアルを参照してください。
このセクションでは、IronBarcodeを使用してPDFドキュメントファイルをMemoryStreamオブジェクトまたはPDFドキュメントストリームのリストとして読み取る方法を示します。 コードはこちらです:
複数の PDF ドキュメントについてはどうですか?
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ドキュメントの場合、すべてのPDFを1つのドキュメントストリームにマージしてからBarcodeReader.ReadPdf()に送ります。 このアプローチは、各PDFを個別に処理するよりも効率的に処理し、メモリのオーバーヘッドを削減します。 PDF固有のバーコードリーダー設定を構成して、ドキュメントの読み取りを最適化します。
高度なシナリオでは、特定のページまたはPDF領域を処理します。 IronBarcodeは、ページ範囲を指定し、バーコードが表示される領域をターゲットとして、ページ内の領域を切り取ることができます。 これにより、大きな文書の処理速度が向上します。
本番環境でストリームを使用する際は、MemoryStreamオブジェクトを適切に処理してメモリリークを防止します。 usingステートメントは、自動的な処理を確実にします:
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はカスタマイズ可能なバーコードリーダー設定を提供し、単一のストリームまたはコレクションに保存された複数のストリームを処理する場合でも、特定のユースケースに合わせて読み取りプロセスを最適化することができます。
How do I manage multiple PDF streams for barcode reading with IronBarcode?
For multiple PDFs, merge them into a single document stream and process with `BarcodeReader.ReadPdf()`. This approach enhances efficiency by reducing processing overhead and memory usage.
What steps are involved in reading a barcode from an image stream using IronBarcode?
First, instantiate a `MemoryStream` for your image data, then call `BarcodeReader.Read()` on the stream. This simple process allows for direct barcode extraction from in-memory data.
How can IronBarcode handle image correction for low-quality images?
IronBarcode provides image correction filters, improving barcode recognition rates for imperfect or low-quality image streams, enhancing overall reading accuracy.
How do I ensure efficient memory usage when processing streams with IronBarcode?
Ensure to dispose of `MemoryStream` objects after use, ideally with a `using` statement to prevent memory leaks. This practice is crucial in production to maintain optimal performance.
