C#でqrコード 読み取り:QRコードのタイプを識別する方法
ランタイムでスキャンされたQRコードのフォーマットを識別します。QrResult.QrTypeを読み、シンボロジーとタイプに応じた処理ロジックを多様な入力ソースに対して構築します。
アプリケーションが複数のソースからQRコードを受け付けるとき、フォーマットは常に予測可能とは限りません。 物流プラットフォームは、出荷ラベルから標準的なQRコードを受け取る一方で、商品タグからコンパクトなマイクロQRコードを受け取るかもしれません。 ドキュメント処理システムは、PDFに埋め込まれたコードをスキャンする一方で、物理メディアに印刷されたコードをスキャンするかもしれません。 QrResult.QrTypeを読むことで、アプリケーションはどのフォーマットが検出されたかを把握でき、入力を検証したり、正しいハンドラーにデータをルーティングしたり、レビュー用に未対応のフォーマットをログに記録したりすることが可能です。
このガイドではIronQRライブラリを使用してスキャン結果からQRコードのフォーマットを取得する方法を示します。 まだQRコードをスキャンしていない開発者は、まず画像からQRコードを読むガイドから始めてください。
クイックスタート: QRコードタイプを読む
画像を読み込み、それをQrReaderでスキャンして、検出されたフォーマットにアクセスします。
最小限のワークフロー(5ステップ)
- QRコードタイプを読むためのIronQR C#ライブラリをダウンロードします
- 画像をロードし、それを
QrImageInputにラップします QrReaderインスタンスを作成し、入力と共にReadを呼び出します- 検出されたフォーマットに
QrResult.QrTypeを通じてアクセスします QrEncodingでswitchを使用してフォーマットごとに処理をルーティングします
QRコードタイプを読むにはどうすればいいですか?
QRコードのタイプを読むには、画像をQrTypeにアクセスします。 このプロパティは、検出されたシンボロジーを識別するQrEncoding列挙型の値を返します。
入力
以下の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}")
QrEncoding.RMQRCodeのようなものがあります。 これにより、解析や文字列比較なしでswitch文で直接使用することが可能です。
出力
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
各QrEncoding値をターゲットにしています。 defaultブランチは、明示的に処理されていないフォーマットをキャッチしますので、予期しない入力で無言でループが失敗することはありません。 アプリケーションが追加のフォーマットをサポートする必要がある場合は、より多くのケースを追加します。
出力
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機能セットをご覧ください。

