C#でqrコード 読み取り:QRコードのタイプを識別する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

ランタイムでスキャンされたQRコードのフォーマットを識別します。QrResult.QrTypeを読み、シンボロジーとタイプに応じた処理ロジックを多様な入力ソースに対して構築します。

アプリケーションが複数のソースからQRコードを受け付けるとき、フォーマットは常に予測可能とは限りません。 物流プラットフォームは、出荷ラベルから標準的なQRコードを受け取る一方で、商品タグからコンパクトなマイクロQRコードを受け取るかもしれません。 ドキュメント処理システムは、PDFに埋め込まれたコードをスキャンする一方で、物理メディアに印刷されたコードをスキャンするかもしれません。 QrResult.QrTypeを読むことで、アプリケーションはどのフォーマットが検出されたかを把握でき、入力を検証したり、正しいハンドラーにデータをルーティングしたり、レビュー用に未対応のフォーマットをログに記録したりすることが可能です。

このガイドではIronQRライブラリを使用してスキャン結果からQRコードのフォーマットを取得する方法を示します。 まだQRコードをスキャンしていない開発者は、まず画像からQRコードを読むガイドから始めてください。

クイックスタート: QRコードタイプを読む

画像を読み込み、それをQrReaderでスキャンして、検出されたフォーマットにアクセスします。

  1. IronQR をNuGetパッケージマネージャでインストール

    PM > Install-Package IronQR
  2. このコード スニペットをコピーして実行します。

    var input = new QrImageInput("qr-code.png");
    var results = new QrReader().Read(input);
    Console.WriteLine(results.First().QrType);
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronQR を使い始めましょう無料トライアル

    arrow pointer

QRコードタイプを読むにはどうすればいいですか?

QRコードのタイプを読むには、画像をQrTypeにアクセスします。 このプロパティは、検出されたシンボロジーを識別するQrEncoding列挙型の値を返します。

入力

以下のQRコードはhttps://ironsoftware.comをエンコードしており、そのタイプを抽出するためにスキャンされます。

QRコードエンコードhttps://ironsoftware.comは、タイプ検出の入力として使用されます。
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type.cs
using IronQr;
using System.Drawing;
using System.Linq;

// Import an image containing a QR code
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
QrReader reader = new QrReader();

// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);

// Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}");
Imports IronQr
Imports System.Drawing
Imports System.Linq

' Import an image containing a QR code
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)

' Create a QR Reader object
Dim reader As New QrReader()

' Read the input and get all embedded QR codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

' Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}")
$vbLabelText   $csharpLabel

QrEncoding.RMQRCodeのようなものがあります。 これにより、解析や文字列比較なしでswitch文で直接使用することが可能です。

出力

検出されたQRコードタイプを表示するコンソール出力

QRコードフォーマットで処理をルーティングするにはどうすればいいですか?

アプリケーションが複数のソースからQRコードを受け取るとき、すべての入力が同じフォーマットであるとは限りません。 QrEncoding値に基づいて正しいハンドラーにルーティングします。 これにより、フォーマット固有のロジックが分離され、新しいフォーマットの分岐を簡単に追加することができます。

上記と同じ入力QRコードを使用しています:

:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type-all.cs
using IronQr;
using IronQr.Enum;
using System.Drawing;

// Import an image containing QR codes
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
QrReader reader = new QrReader();

// Read all embedded QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);

// Route processing based on the detected QR code format
foreach (QrResult result in results)
{
    switch (result.QrType)
    {
        case QrEncoding.QRCode:
            Console.WriteLine($"Standard QR Code: {result.Value}");
            break;
        case QrEncoding.MicroQRCode:
            Console.WriteLine($"Micro QR Code: {result.Value}");
            break;
        case QrEncoding.RMQRCode:
            Console.WriteLine($"RMQR Code: {result.Value}");
            break;
        default:
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}");
            break;
    }
}
Imports IronQr
Imports IronQr.Enum
Imports System.Drawing

' Import an image containing QR codes
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)

' Create a QR Reader object
Dim reader As New QrReader()

' Read all embedded QR codes from the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

' Route processing based on the detected QR code format
For Each result As QrResult In results
    Select Case result.QrType
        Case QrEncoding.QRCode
            Console.WriteLine($"Standard QR Code: {result.Value}")
        Case QrEncoding.MicroQRCode
            Console.WriteLine($"Micro QR Code: {result.Value}")
        Case QrEncoding.RMQRCode
            Console.WriteLine($"RMQR Code: {result.Value}")
        Case Else
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}")
    End Select
Next
$vbLabelText   $csharpLabel

QrEncoding値をターゲットにしています。 defaultブランチは、明示的に処理されていないフォーマットをキャッチしますので、予期しない入力で無言でループが失敗することはありません。 アプリケーションが追加のフォーマットをサポートする必要がある場合は、より多くのケースを追加します。

出力

検出された各QRコードのフォーマットベースルーティング結果を表示するコンソール出力

QrResult.QrTypeは何を返しますか?

QrEncoding列挙型プロパティです。 これはQrReader.Read()中に自動的に入力され、追加の設定を必要としません。 switchで使用します。

価値 翻訳内容
QrEncoding.QRCode 標準QRコードは、すべての業界で最も一般的に使用されるフォーマットです。
QrEncoding.MicroQRCode 印刷面積の限られた小さな表面のために設計されたコンパクト変種です。
QrEncoding.RMQRCode 細長いラベル形状に最適化された長方形のマイクロQRコード(rMQR)です。

QrTypeは読み取り専用で、スキャナーが画像で検出したものを反映します。 その値は、QRコードがどのように生成されたかには依存しません。


QrTypeの一般的な使用例は何ですか?

  • 物流と配送: ラベルが標準的なQRコードを運んでいるか、コンパクトなマイクロQRかを検出し、それぞれを正しい解析パイプラインにルートします。
  • 文書処理: スキャンされた文書が値の抽出前に予期されたフォーマットを含んでいることを検証し、記録マッチングをします。
  • 多形式キオスク: 単一のステーションで異なるQRフォーマットを受け入れ、各フォーマットを適切なハンドラーに自動送信します。
  • 監査とコンプライアンス: デコードされた値と共にシンボロジータイプをログに記録し、バッチ全体で入力フォーマットの検証可能な記録を作成します。
  • 品質保証: 生成されたQRコードが意図したタイプとしてスキャンバックされることを確認し、出力が仕様に一致していることを確認します。

タイプを検出した後のQRコードデータの読み取りについては、QRコードの値を読むガイドと、全てのIronQR機能セットをご覧ください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 63,625 | バージョン: 2026.4 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronQR
サンプルを実行する URL が QR コードになるのを見る。