複数の QR コードを 1 つの画像で Aspose.BarCode for .NET でスキャンする方法
この記事では、Aspose.BarCode for .NET を使用して単一の画像に存在する複数の QR コードをスキャンおよび解読する方法を示しています。
現実世界問題
組織は、多くの場合、複数のQRコードを含む画像(スキャンされたフォーム、大規模なラベル、イベントパスなど)を受け取ったり、生成したりします。それぞれのコドの手動スキャニングは遅く、実用性がありません。開発者は、一つの自動ステップでそのような画像からすべてのQrコッドを処理するための迅速かつ信頼性の高い方法が必要です。
ソリューション概要
Aspose.BarCode for .NET はバッチ QR 認識をサポートします: 単一の画像ファイルまたはストリーム内ですべての QR のコードをスキャンおよび解読することができます. 結果は、高パワードキュメント自動化、チケット認証、またはデータ収集のワークフローを可能にする解析されたオブジェクトのコレクションです。
原則
スタートする前に、あなたが持っていることを確認してください:
- Visual Studio 2019 以降
- .NET 6.0 またはそれ以降(または .Net Framework 4.6.2+)
- Aspose.BarCode for .NET は NuGet でインストールされています。
- C#の基本知識
PM> Install-Package Aspose.BarCode
ステップ・ステップ・実施
ステップ1:インストールおよび設定 Aspose.BarCode
Aspose.BarCode パッケージを追加し、必要な名称スペースを含みます。
using Aspose.BarCode.BarCodeRecognition;
ステップ2:入力データの準備
複数のQRコードを含む画像ファイルを準備または取得する(例えば、「multi_qr_sample.png」)。
string imagePath = "multi_qr_sample.png";
ステップ3:QRコードバッチ認証オプションを設定する
QR スキャンのためのバーコードリーダーを設定します. 追加のバッチオプションは必要ありません: ライダーはすべての既存の QR カードを自動的に検出します。
BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);
ステップ4:バッチQRスキャンプロセスを実行
すべての認められたQRコードを通じてイーテレートする:
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
ステップ5:出力とプロセッサ後の処理
あなたのアプリケーション(データベース入力、イベント認証など)によって要求されるように、暗号化されたQRデータを保存、確認、または処理します。
ステップ6:エラー処理の実施
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
完全例
using Aspose.BarCode.BarCodeRecognition;
using System;
class Program
{
static void Main()
{
string imagePath = "multi_qr_sample.png";
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
ケースとアプリケーションの使用
- Bulk チケットまたはパス スキャン: イベントやトランジット ステーションでのチェックインシステム
- バッチドキュメント自動化: フォームまたはスキャンされたページからメタデータを抽出する
- Inventory and Asset Management: 複数の QR コードを単一のラベルまたはクラートでスキャンする
共通の課題と解決策
チャレンジ1:QRコードはあまりにも密接です。解決策: 各コードの周りに明確な静かなゾーンを印刷/配置デザインで使用します。
チャレンジ2:QRコードが検出されていない解決策: 画像の解像度を高めるか、画像を事前に処理する(例えば、範囲)は、明確性を向上させる。
チャレンジ3 : 望ましくないバーコードが存在します。解決策: QRに厳密に解読を制限する DecodeType.QR
だけです。
パフォーマンス考慮
- ストリームやメモリバッファーを使用して、高パワーアプリケーション
- 資源を保存するための読者オブジェクトの利用
- 画像サイズを最適なスピードと正確さのバランスに調整する
ベストプラクティス
- 使用前にすべてのデコードされた結果を確認する
- 追跡性と監査のための記録結果
- 様々なサンプル画像でテストバッチスキャン
- QRコードの明確な分離を文書の配置に保証する
高度なシナリオ
1.MemoryStreamからQRコードをバッチスキャンする
using (FileStream fs = File.OpenRead(imagePath))
using (BarCodeReader reader = new BarCodeReader(fs, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine(result.CodeText);
}
}
2.データベース入力のプロセス結果
List<string> qrData = new List<string>();
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
qrData.Add(result.CodeText);
}
}
// Insert qrData into database as needed
結論
Aspose.BarCode for .NET を使用すると、単一の画像に存在するすべての QR コードを効率的にバッチでスキャンし、イベント管理、資産追跡、またはドキュメントワークストリームにおける高容量自動化を可能にします。
詳細については、 Aspose.BarCode を参照してください。 API 参照 .