ASP.NETでのQRコードスキャンの方法
QRコードは我々のデジタル世界において遍在し、広告、小売、イベント管理などで頻繁に使用されています。 ASP.NETフレームワークで働く開発者にとって、WebアプリケーションにQRコード読み取り機能を統合することは、ユーザー体験と機能性を向上させることができます。 この記事では、ASP.NETアプリケーションにQRコードスキャナーを実装するプロセスを、必要なツール、ライブラリ、段階的な実装をカバーしながら探ります。 QRコードを読むために、Iron SoftwareのIronQRという強力なライブラリを使用します。
ASP.NETでQRコードをスキャンする方法
- Visual Studioを使用してASP.NETプロジェクトを作成します。
- パッケージマネージャーからIronQRライブラリをインストールします。
- QR画像をアップロードしてQRを読みます。
- 高度なQRコードを読みます。
QRコードとその使用例を理解する
QR(クイックレスポンス)コードは、URLから連絡先情報までのさまざまな情報を格納できる2次元バーコードであり、通常はスマートフォンや専用のスキャニングデバイスを使用してスキャンされます。 Webアプリケーションにおいて、QRコードは次のようなさまざまな目的に使用できます:
*クイック Web サイト アクセス:*入力することなく、ユーザーを特定の URL に誘導します。 イベントチケット発行:イベントへのアクセスのためにチケットの QR コードを検証します。 決済システム: QR コードをスキャンすることで簡単に決済できます。 製品情報:**製品に関する追加情報を提供します。
IronQRの紹介
IronQRは、QRコードの生成とスキャンを目的に設計された強力な.NETライブラリであり、使いやすさを考慮した高機能を提供します。 この多用途のライブラリはQRコードだけでなく、他の種類のバーコードも管理できるため、.NETエコシステムで働く開発者にとって選ばれる選択肢となっています。 ここでは、ASP.NETアプリケーションにIronQRライブラリを統合してQRコードスキャンを行う方法を探ります。
IronQRの主な利点と機能
QR コードの読み取り: IronQR は、jpg、png、svg、bmp、gif、tif、tiff など、さまざまな画像形式の QR コードを読み取ることができます。 マルチページ画像とカスタムQR検出モデルもサポートしています。 出力データフォーマットにはテキスト、URL、座標などが含まれます。
- QR コードの書き込み: QR コードを生成し、画像 (jpg、png、gif、tiff、bmp) やストリームとして保存したり、既存の PDF にスタンプしたりすることもできます。 テキスト、URL、バイト、数字などのデータをエンコードしてQRコードを生成します。 QRコードのスタイリングをサイズ変更、マージン調整、再着色、ロゴ追加でカスタマイズします。
3.エラー処理と修正: IronQR は詳細なエラー メッセージとカスタム QR エラー修正を提供します。 フォールトトレランスを確保し、ヌルチェックとチェックサムをサポートします。
4.高度な機械学習モデル: IronQR は、QR コード認識に高度な機械学習モデルを使用します。 このモデルは、モバイル、デスクトップ、クラウド環境など、さまざまなプラットフォームでの正確で信頼性のあるQRコードの読み取りを保証します。
5.クロスプラットフォームの互換性: IronQRは C#、F#、VB.NET 向けに設計されており、.NET Core (8、7、6、5、3.1+)、.NET Standard (2.0+)、.NET Framework (4.6.2+) などのさまざまな .NET バージョンで実行されます。
- Web(Blazor & WebForms)、モバイル(Xamarin & MAUI)、デスクトップ(WPF & MAUI)、コンソールアプリケーションなど、さまざまなプロジェクトタイプをサポートします。
7.幅広い QR コードのサポート: IronQR は、幅広い QR コードやその他の種類のバーコードの処理に優れています。 標準的なQRコード、マイクロQRコード、QRコードバーコード画像、AztecやData Matrixなどの特定の形式であっても、IronQRは対応しています。 IronQRはQRコードバーコードを読み取る機能もサポートしています。
様々なオフィス文書、PDF編集、OCRなどのツールを含む.NET API製品の[IronQR](Iron Suite)。
ステップ1: Visual Studioを使用して新しいASP.NETプロジェクトを作成する
新しいプロジェクトを作成し、以下に示すようにMVCテンプレートを選択してください:

次に、プロジェクト名とプロジェクトの保存場所を指定します。

.NETバージョンを選択します。

作成ボタンをクリックすると、以下のコードとプロジェクトが生成されます。

ステップ2: Visual StudioのパッケージマネージャーからIronQRライブラリをインストールする
以下に示すように、Visual StudioのパッケージマネージャーからIronQRライブラリをインストールします:

IronQRは、NuGetパッケージマネージャーでもインストール可能です。

ステップ3: QRイメージをアップロードしてQRイメージを読む
さあ、QRコードアプリを作成しましょう。
QRCodeModelの作成
// Import necessary namespaces
using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
public class QRCodeModel
{
// Property to hold the uploaded QR code image
[Display(Name = "Select QR Image")]
public IFormFile QRCodeImage { get; set; }
}
}// Import necessary namespaces
using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
public class QRCodeModel
{
// Property to hold the uploaded QR code image
[Display(Name = "Select QR Image")]
public IFormFile QRCodeImage { get; set; }
}
}QRコードコントローラを作成
コントローラーフォルダーを右クリックして、以下に示すように新しいコントローラーを追加します。

空のコントローラーを選択します。

コントローラー名を指定します。

次に、以下のコードをコントローラーに追加します。
// Import necessary namespaces
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
// Controller to handle QR code scanning functionalities
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
// Constructor for dependency injection of the hosting environment
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
// Displays the initial View
public IActionResult Index()
{
ViewBag.QrCodeText = "Text";
return View();
}
// Handles the POST request to scan a QR code
[HttpPost]
public IActionResult ScanQRCode(QRCodeModel qrImage)
{
string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
// Define the file path for saving the uploaded QR image
string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
using (var stream = System.IO.File.Create(filePath))
{
qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server
}
// Open the asset to read a QR Code from
var bitmap = AnyBitmap.FromFile(filePath);
// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(bitmap);
// 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 scanned text and image on the view
ViewBag.QrCodeText = results.First().Value;
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
ViewBag.QrCodeUri = imageUrl;
return View();
}
}
}// Import necessary namespaces
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
// Controller to handle QR code scanning functionalities
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
// Constructor for dependency injection of the hosting environment
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
// Displays the initial View
public IActionResult Index()
{
ViewBag.QrCodeText = "Text";
return View();
}
// Handles the POST request to scan a QR code
[HttpPost]
public IActionResult ScanQRCode(QRCodeModel qrImage)
{
string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
// Define the file path for saving the uploaded QR image
string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
using (var stream = System.IO.File.Create(filePath))
{
qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server
}
// Open the asset to read a QR Code from
var bitmap = AnyBitmap.FromFile(filePath);
// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(bitmap);
// 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 scanned text and image on the view
ViewBag.QrCodeText = results.First().Value;
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
ViewBag.QrCodeUri = imageUrl;
return View();
}
}
}コードの説明
提供されたコードスニペットは、QRコードのスキャン機能をIronQRライブラリを使用して処理するために設計されたASP.NET Core MVCコントローラーであるQrCodeControllerです。 コードが何をするのかの簡単な説明はこちらです:
1. アップロードされたQRコード画像の保存
パスの構築
- QRコード画像を保存するためにアプリケーションのWebルートディレクトリ内にファイルパスを構築します("ScanQRCode"ディレクトリ)。
- このディレクトリが存在するかどうかを確認し、存在しない場合は、ファイルを保存する際のファイル未発見エラーを防ぐためにディレクトリを作成します。
ファイルの保存
- アップロードされたQRコード画像を保存する完全なファイルパス(
filePath)を構築します("ScanQRCode/qrcode.png")。 この処理は、同じ名前の既存のファイルを上書きし、ファイルの蓄積を防ぎながら新しいスキャンを効果的に処理します。 - ファイルストリームを開き、アップロードされた画像(おそらくフォームファイル
qrImage.QRCodeImage)の内容をサーバーの指定された場所にコピーします。
2. QRコードのデコード
イメージファイルの読み込み
AnyBitmap.FromFile(filePath)を使用して保存されたイメージファイルをQRコードスキャン用の形式にロードします。AnyBitmapは、画像ファイルをQRリーダーが処理できるビットマップオブジェクトに変換するためのヘルパークラスとして機能する可能性があります。
QRリーダーの初期化
- 読み込まれたビットマップをQRコード読み取りプロセス専用に設計された
QrImageInputにラップします。 - QRコードの検出とデコードを行うために設定されたIronQRライブラリのコンポーネント、
QrReaderのインスタンスを作成します。
QRコードのスキャン
reader.Read(imageInput)を呼び出して、QRコードを画像内でスキャンします。 このメソッドは、画像内で検出されたQRコードのデータを含むQrResultのIEnumerable<QrResult>を返します。- 最初の結果の値を
results.First().Valueを使用して抽出し、このデコードされた情報をViewBag.QrCodeTextに保存します。 これは、画像に少なくとも1つのQRコードが含まれていることを前提としており、QRコードが検出されなかった場合のエラーを処理しません。
3. 応答の準備と返送
画像URLの構築
- サーバー上に保存されているQRコード画像を指すURL(
imageUrl)を構築します。 このURLは、現在のHTTPリクエストのスキーム、ホスト、およびパスベースを使用して構築され、ユーザーがアクセスして閲覧できるようにします。 - 構築されたURLは
ViewBag.QrCodeUriに保存されます。
ビューの返り
- 同じビュー(
View())を返します。これは、おそらくユーザーにQRコード画像とデコードされたテキストの両方を表示します。ViewBagは、QRコードのデコードされたテキストと画像のURLをビューに渡してレンダリングするために使用されます。
コントローラークラスにビューを追加する
クラスQrCodeControllerにあるCreateQRCodeアクションメソッドを右クリックして新しいビューを追加します。

"ビューを追加"を選択し、次に"Razor View"を選択します。 "追加"をクリックします。

チケッティング、認証、情報共有のためのQRコードは、データを効率的に送信するための多目的なソリューションを提供します。

以下に示すコードでビュークラス内のコードを置き換えます。
@model IronQRScannerAsp.Models.QRCodeModel
@{
ViewData["Title"] = "ScanQRCode";
}
<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
<div class="col-md-14">
<form asp-action="ScanQRCode" enctype="multipart/form-data">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label for="QRCodeImage">Select QR Image:</label>
<input asp-for="QRCodeImage" class="form-control" type="file" />
</div>
<div class="form-group">
<input type="submit" value="Upload" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<div>
<h3>Scanned Text:</h3>
<h4>@ViewBag.QrCodeText</h4>
@if (ViewBag.QrCodeUri != null)
{
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
}
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}現在のProgram.csで以下のコードを変更し、上記のビューをデフォルトルートにします:
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");これにより、デフォルトのルートをHomeControllerから新しいQrCodeコントローラーに変更します。
URL付きの入力画像:https://ironsoftware.com/csharp/qr/。

出力

ページ上でQRコード画像を選択し、"アップロード"をクリックしてQRコードをデコードします。 このアプリは、ビデオフィードから読み取り、結果を表示するように変更することもできます。
ステップ4: 高度なQRコードを読む
高度なQRコードを読むために、IronQRは以下の設定を提供します。
// Import necessary namespaces
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
// Load an image file as a bitmap
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan - High Speed
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);// Import necessary namespaces
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
// Load an image file as a bitmap
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan - High Speed
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);最新のML技術を活用することにより、QRコードリーダーを新たな高みへと引き上げました。 洗練されたMLモデルは、複雑な条件下でもQRコードのデコードにおけるアプリケーションの精度と効率を向上させます。 静止画像、ビデオストリーム、ライブカメラフィードからQRコードを読み取るかどうかに関わらず、ML技術を駆使したソリューションは、必要な情報を迅速かつ確実に提供します。 この革新はデータの取得を効率化し、本物のQRコードを特定し潜在的な脅威を認識することで、セキュリティを向上させます。 私たちのML技術を使用することで、QRコードスキャニング機能が最先端であること、ユーザーにスムーズで安全な体験を提供することを確信できます
ライセンス (トライアル利用可能)
開発者はこちらからIronQRトライアルライセンスを取得できます。 キーはappSettings.jsonに配置する必要があります。
{
"IronQR.License.LicenseKey": "My Key"
}結論
この記事では、IronQRを使用して、ASP.NET CoreでQRコードをスキャンする方法について探ってきました。 IronQRをASP.NETアプリケーションに統合してQRコードスキャンを行うことは、Webアプリケーションの機能を強化し、よりインタラクティブでユーザーフレンドリーにする簡単なプロセスです。 IronQRの強力な機能と使いやすさは、バーコード関連の機能を実装したい開発者にとって優れた選択肢です。
よくある質問
ASP.NETアプリケーションでQRコードスキャナーを実装するにはどうすればいいですか?
ASP.NETアプリケーションでQRコードスキャナーを実装するには、Visual Studioで新しいプロジェクトを作成し、パッケージマネージャーを通じてIronQRライブラリをインストールし、IronQRの強力な機能を使用してQRコードスキャンを処理するコードを追加します。
ASP.NETでQRCodeModelを設定する手順は何ですか?
ASP.NETでQRCodeModelを設定するには、QRコードデータを処理するモデルクラスを定義し、IronQRを使用して入力を処理し、ASP.NETアプリケーションがQRコードのスキャンと結果の表示を管理できるようにします。
IronQRは異なる画像形式からQRコードを読み取ることができますか?
はい、IronQRはjpg、png、svg、bmp、gif、tif、tiff、多ページ画像を含む複数の画像形式からQRコードを読み取ることができ、さまざまなアプリケーションに対応しています。
IronQRはQRコードのスキャンに機械学習をどのように利用していますか?
IronQRは進化した機械学習モデルを用いてQRコードスキャンの精度を向上させ、さまざまな環境およびプラットフォームでの信頼性と正確な読み取りを保証します。
QRコードスキャンにおいて、IronQRを使用できるプラットフォームは何ですか?
IronQRはWebアプリケーション(Blazor&WebForms)、モバイルアプリ(Xamarin&MAUI)、デスクトップアプリ(WPF&MAUI)、コンソールアプリケーションを含む広範なプラットフォームをサポートし、C#、F#、VB.NETと互換性があります。
ASP.NETでQRコードスキャンのためのファイルアップロードをどのように処理しますか?
ASP.NETでは、ファイルアップロード用にコントローラーを設定してファイルを受信し、IronQRを使用してアップロードされたQRコード画像を効果的に処理し、スキャンします。
IronQRを使用してビデオフィードからQRコードをスキャンすることは可能ですか?
はい、IronQRはビデオフィードからQRコードをスキャンするように適応可能で、リアルタイムデータ処理が必要な動的な環境にその応用を広げます。
IronQRのライセンスオプションはどのようなものがありますか?
IronQRは試用ライセンスを提供しており、Iron Softwareのウェブサイトから取得できます。開発者はライセンスキーをappSettings.jsonファイルに配置して試用を有効化してください。
ASP.NETでQRコードスキャンにIronQRを使用することの利点は何ですか?
ASP.NETでQRコードスキャンにIronQRを使用することは、簡単な統合、さまざまな画像形式のサポート、機械学習で強化された精度、プラットフォーム間の互換性などの利点を提供します。
IronQRを使用してASP.NETでQRコードの作成をカスタマイズするにはどうすればよいですか?
ASP.NETでIronQRを使用してQRコードの作成をカスタマイズするには、ライブラリの機能を使用してQRコードのサイズ、色、埋め込むデータを変更し、特定のアプリケーション要件に合わせた出力を作成します。






