複数の QR コードを 1 つの画像で Aspose.BarCode for .NET でスキャンする方法

複数の 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 参照 .

 日本語