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

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、またはバーコードデータをバイト配列として受信したり、一時ファイルを作成せずに画像を処理する必要があるシナリオに適しています。 [画像ファイル](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-images/)や[PDFファイル](https://ironsoftware.com/csharp/barcode/how-to/read-barcodes-from-pdf/)からバーコードを読み取るだけでなく、IronBarcodeはストリームからバーコードを読み取ることもできます。 このライブラリは、PDF文書または画像ストリームを入力として受け入れ、バーコード読み取り結果を出力します。 この機能は、データベース、ウェブアップロード、またはメモリキャッシュされたコンテンツからのデータ処理に適しています。 *as-heading:2(クイックスタート: イメージストリームから直接 BarCode を読み取る)*。 IronBarcodeは2行のコードであらゆるイメージストリームからバーコードを読み取ります。 この例では、.NET でのストリームベースの BarCode 読み取りを示します。 ```cs :title=Easily Read Barcodes from Streams var result = IronBarCode.BarcodeReader.Read(myImageStream); Console.WriteLine(result[0].Text); ``` ## 画像ストリームから BarCode を読み取るには? . 。 ### なぜファイルの代わりにメモリストリームを使用するのですか

メモリ・ストリームには、ファイル・ベースの操作に比べていくつかの利点があります。 ディスクI/Oのオーバーヘッドをなくし、アプリケーションを高速化します。 機密バーコードデータがディスクに触れることがないため、セキュリティが向上します。 また、ディスクアクセスが制限されていたり、高価であったりするクラウド環境にも適しています。IronBarcode の[asyncおよびマルチスレッド機能](https://ironsoftware.com/csharp/barcode/how-to/async-multithread/)と組み合わせることで、複数のストリームを同時に処理し、最大のパフォーマンスを得ることができます。 このセクションでは、IronBarcodeを使用して`List`に格納されたイメージストリームと複数のイメージストリームを読み取る方法を示します。 以下のコードには、プロセスを説明するためのコメントが含まれています: ### どのような画像形式がサポートされていますか? IronBarcodeはストリームからの読み取り時に複数の画像フォーマットをサポートします:JPEG、PNG、GIF、TIFF、BMP、SVGです。 この柔軟性により、ソース形式に関係なくバーコード画像を処理することができます。 最適な結果を得るには、[BarCodeリーダーの設定](https://ironsoftware.com/csharp/barcode/examples/barcode-reader-settings-csharp/)を使用して、読み取りプロセスを微調整してください。 ```csharp 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 imageStreams = new List { // 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 ``` ### 複数の画像ストリームを処理するにはどうすればよいですか? 上のコードは、IronBarcodeが`BarcodeReader.Read()`メソッドで単一の`MemoryStream`オブジェクトまたは`MemoryStream`オブジェクトのリストを受け取ることを示しています。 この例では、画像ファイルを MemoryStream オブジェクトに変換し、ストリームから直接 BarCode を読み取ります。 複数のストリームを処理する場合、IronBarcodeは[読み取り速度オプション](https://ironsoftware.com/csharp/barcode/how-to/reading-speed-options/)を効率的に使用します。 最大限の正確さが必要か、最速の処理時間が必要かなど、ニーズに応じて読む速度を調整します。[単一のストリームから複数のバーコードを読み取る](https://ironsoftware.com/csharp/barcode/how-to/read-multiple-barcodes/)場合、IronBarcodeは自動的に検出し、見つかったすべてのバーコードを返します。 ストリーム中の不完全な画像や低画質画像の精度を高めるには、処理前に[画像補正フィルター](https://ironsoftware.com/csharp/barcode/how-to/image-correction/)を適用してください。 これにより、BarCodeの認識率が大幅に向上します。 ## どのように PDF ドキュメント ストリームから BarCode を読み取りますか? .

なぜRead()の代わりにReadPdf()を使うのですか? `ReadPdf()`メソッドは、PDFドキュメントに特化して最適化され、一般的な`Read()`メソッドよりも優れています。 マルチページドキュメント、ベクターグラフィックス、埋め込み画像など、PDF特有の機能を効率的に処理します。 このメソッドは、すべてのPDFページを自動的に処理し、さまざまなPDFフォーマットと圧縮タイプを扱います。包括的な機能については、[バーコードを読むチュートリアル](https://ironsoftware.com/csharp/barcode/tutorials/reading-barcodes/)を参照してください。 このセクションでは、IronBarcodeを使用してPDFドキュメントファイルを`MemoryStream`オブジェクトまたはPDFドキュメントストリームのリストとして読み取ることを示します。 コードはこちらです: ### 複数の PDF ドキュメントについてはどうですか? ```csharp :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs ``` ### 複数の PDF ストリームを効率的に処理するには? PDF 文書から MemoryStream オブジェクトとして BarCode を読み取ることは、画像から読み取ることに似ています。 重要な違いはメソッドです:`BarcodeReader.ReadPdf()`は、特にPDFドキュメントを処理します。 この例ではIronPDFを使ってPDFドキュメントを`MemoryStream`オブジェクトに変換しています。 複数のPDF文書の場合、`BarcodeReader.ReadPdf()`に供給する前に、すべてのPDFを1つの文書ストリームにマージしてください。 このアプローチは、各PDFを個別に処理するよりも効率的に処理し、メモリのオーバーヘッドを削減します。 [PDF固有のバーコードリーダー設定](https://ironsoftware.com/csharp/barcode/examples/pdf-barcode-reader-settings-csharp/)を構成して、ドキュメントの読み取りを最適化します。 高度なシナリオでは、特定のページまたはPDF領域を処理します。 IronBarcodeは、ページ範囲を指定し、バーコードが表示される領域をターゲットとして、ページ内の領域を切り取ることができます。 これにより、大きな文書の処理速度が向上します。 実運用でストリームを使用する場合は、メモリ・リークを防ぐために、`MemoryStream` オブジェクトを適切に破棄してください。 `using`ステートメントは、自動廃棄を保証します: ```csharp using (MemoryStream pdfStream = new MemoryStream(pdfBytes)) { var results = BarcodeReader.ReadPdf(pdfStream); // Process results } ``` あなたの特定のニーズに合わせて、ライブラリを試してみてください。 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,002,059 | バージョン: 2025.12 リリース