ASP .NET CoreでQRコードを生成する方法
QRコードは現代技術の重要な一部となっており、情報を便利に保存および送信する方法を提供しています。 Web開発では、私たちがASP.NET Coreで実装するIronQRのようなQRコードジェネレーターは、動的なQRコード作成のための強力な機能を提供します。 QRコードジェネレーターは、チケッティングシステム、認証、在庫管理など、さまざまなアプリケーションにとって不可欠です。 この記事では、IronQRを使用してASP.NET CoreでQRコードを作成するプロセスについて詳しく説明します。これはこの目的のために設計された強力なライブラリです。 ASP.NET Coreは、Webアプリケーションを構築するための多用途なフレームワークであり、QRコード生成のための強力な機能を提供します。 この記事では、Iron Softwareから提供されるQRコード生成の強力なライブラリであるIronQRを使用してASP.NET CoreでQRコードを作成するプロセスについて詳しく説明します。
ASP.NET CoreでQRコードを生成する方法
- Visual Studioを使用してASP.Netプロジェクトを作成
- パッケージマネージャーからIronQRライブラリをインストール
- QRコードを生成
- フォーマット付きでQRコードを生成
IronQRの理解
IronQRは、.NETアプリケーション向けの高性能なQRコード生成ライブラリです。 さまざまなカスタマイズオプションでQRコードを生成するためのシンプルで直感的なAPIを提供します。 IronQRは.NET Standardをサポートしており、ASP.NET Coreを含む幅広いプラットフォームと互換性があります。 IronQRを使用すると、開発者はさまざまなデータ型、エラー訂正レベル、サイズ、および形式でQRコードを手軽に生成できます。
主な特徴
1. QRコードの読取りと作成
IronQRは、QRコードの生成と読み取りを簡単に行うことができます。 動的にQRコードを作成する必要がある場合でも、既存のものから情報を抽出する必要がある場合でも、このライブラリが役立ちます。
2. 使いやすいAPI
このライブラリは使いやすいAPIを提供し、開発者が.NETプロジェクトにバーコード機能を迅速に統合できるようにします。 数分でQRコードの作業を開始できます。
3. 互換性
IronQRは、以下を含む様々な.NETバージョンをサポートしています:
- C#、VB.NET、F#
- .NET Core(8、7、6、5、および3.1以上)
- .NET Standard(2.0以上)
- .NET Framework(4.6.2以上)
Web (Blazor & WebForms)、モバイル (Xamarin & MAUI)、デスクトップ (WPF & MAUI)、コンソールアプリケーションなど、幅広いプロジェクトタイプをカバーします。
4. QR検出のための機械学習モデル
IronQRはQRコードを検出するために高度なカスタム機械学習モデルを使用します。 これにより正確で信頼性のあるコード認識が保証されます。 また、軽量なアプローチを好む人のために、スリムモードオプション(機械学習なし)も利用可能です。
5. QRコードの読み取り
様々な画像形式からQRコードを読むことができます:
- 画像(jpg、png、svg、bmp)
- マルチページ画像(gif、tif、tiff)
System.Drawingビットマップ- IronDrawing 画像 (
AnyBitmap)
6. QRコードの書き込み
IronQRを使用すると、以下のような異なるドキュメントタイプでQRコードを書き込むことができます:
- 画像(jpg、png、gif、tiff、bmp)
System.Drawingイメージ- ストリーム(
MemoryStream、byte[]) - PDF(既存PDFへのスタンプとして)
7. QRコードのスタイリング
サイズを変更し、余白や境界を調整し、色を変更し、ロゴを追加することでQRコードをカスタマイズします。
8. エラーハンドリングと訂正
IronQRは詳細なエラーメッセージを提供し、カスタムのQRエラー訂正レベルをサポートします。
この知識をもとに、ASP.NET CoreでQRコードを生成するアプリケーションを始めましょう。
ステップ1:Visual Studioを使用して新しいASP.NETプロジェクトを作成する
QRコード生成を始める前に、新しいASP.NET Coreプロジェクトを設定しましょう。 新しいプロジェクトを開始する手順は次のとおりです:
Visual Studioで新しいプロジェクトを作成し、ASP.Net Core Web Appアプリケーションテンプレートを選択します

"作成"ボタンをクリックしてテンプレートからアプリケーションコードを生成します
ステップ2:パッケージマネージャーからIronQRライブラリをインストールする
必要な.NETバージョンを選択します。
以下に示すようにVisual StudioパッケージマネージャーからIronQRライブラリをインストールします。
IronQRはNuGetパッケージマネージャーを使用してもインストールできます。
ステップ3:QRコードを生成する
ステップ 2: パッケージマネージャーから IronQR ライブラリをインストール
Visual Studioパッケージマネージャーから以下のようにIronQRライブラリをインストールします。

IronQRは、NuGetパッケージマネージャを使用してインストールすることもできます。

ステップ3:QRコードを生成する
では、QRコードアプリを作成しましょう。
QRCodeモデルを作成
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}
}using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
public class QRCodeModel
{
[Display(Name = "Enter QR Code Text")]
public string QRCodeText { get; set; }
}
}Imports System.ComponentModel.DataAnnotations
Namespace GenerateQRCode.Models
Public Class QRCodeModel
<Display(Name := "Enter QR Code Text")>
Public Property QRCodeText() As String
End Class
End NamespaceQRコードコントローラを作成
新しいコントローラを追加するには、コントローラフォルダを右クリックし、以下のように名前を付けます。

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

名前を提供します。

次に、以下のコードをコントローラに統合します。
using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
}
}using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;
namespace GenerateQRCode.Controllers
{
public class QrCodeController : Controller
{
private readonly IWebHostEnvironment _environment;
public QrCodeController(IWebHostEnvironment environment)
{
_environment = environment;
}
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}
}
}Imports GenerateQRCode.Models
Imports IronSoftware.Drawing
Imports IronQr
Imports Microsoft.AspNetCore.Mvc
Namespace GenerateQRCode.Controllers
Public Class QrCodeController
Inherits Controller
Private ReadOnly _environment As IWebHostEnvironment
Public Sub New(ByVal environment As IWebHostEnvironment)
_environment = environment
End Sub
Public Function Index() As IActionResult
Return View()
End Function
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code object
Dim myQr As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
' Save QR Code as a Bitmap
Dim qrImage As AnyBitmap = myQr.Save()
' Save QR Code Bitmap as File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End Function
End Class
End Namespaceコードの説明
名前空間とクラス定義
コードはusingステートメントから始まり、必要な名前空間をインポートします。 GenerateQRCode.Controllers名前空間には、QrCodeControllerクラスがあります。
コントローラコンストラクタ
QrCodeControllerクラスには、IWebHostEnvironmentパラメータを取るコンストラクタがあります。 このパラメータは、ASP.NET CoreによってWebホスティング関連のタスクを処理するために注入されます。
アクションメソッド
Index():このメソッドは、アクセスされたときにビュー(おそらくHTMLページ)を返します。 QRコード生成とは直接関係がないようです。CreateQRCode(QRCodeModel generateQRCode):このメソッドは、QRコード生成ロジックの中心です。 QRコードのテキストを含むと思われるQRCodeModelオブジェクトをパラメータとして受け取ります。
メソッド内
- 生成されたQRコード画像を保存するためのパスを構築します。
QrWriter.Write(generateQRCode.QRCodeText)を使用してQRコードオブジェクトを作成します。- QRコードをビットマップ画像として保存します。
- Webリクエストの詳細に基づいて画像URLを構築します。
ViewBag.QrCodeUriプロパティに画像URLを設定します。- このプロセス中に例外が発生した場合、それらはスローされます。
QRコード生成
実際のQRコード生成はCreateQRCodeメソッド内で行われます。 QrWriter.Write(generateQRCode.QRCodeText)の呼び出しは、提供されたテキストに基づいてQRコードオブジェクトを作成します。
画像の保存
生成された QR コードは、qrImage.SaveAs(filePath) を使用してビットマップ画像として保存されます。 次に、以下のコードをビューに置き換えます。
画像URL
imageUrlは、ウェブリクエストのスキーム、ホスト、パスベースを使用して構成されます。 このURLは、生成されたQRコード画像にアクセスできる場所を指します。 全体として、このコントローラーはQRコードの生成、画像の保存、さらなる使用のための画像URLの提供を処理します。
コントローラーにビューを追加
新しいビューを追加するには、QrCodeControllerクラスのCreateQRCodeアクションメソッドを右クリックします。

"ビューの追加"を選択し、"Razorビュー"を選択します。 "追加"ボタンをクリックします。

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

QRコード生成をASP.NET Coreプロジェクトに組み込み、動的データエンコーディングと共有のための可能性の世界を開放しましょう。
@model GenerateQRCode.Models.QRCodeModel
@{
ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<a href="#" class="btn btn-primary">Create QR Code</a>
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}@model GenerateQRCode.Models.QRCodeModel
@{
ViewData["Title"] = "Generate QR Code";
}
<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="CreateQRCode">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="QRCodeText" class="control-label"></label>
<input asp-for="QRCodeText" class="form-control" />
<span asp-validation-for="QRCodeText" class="text-danger"></span>
</div>
<div class="form-group">
<a href="#" class="btn btn-primary">Create QR Code</a>
</div>
<div class="form-group">
<img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Clear</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}model ReadOnly Property () As GenerateQRCode.Models.QRCodeModel
ViewData("Title") = "Generate QR Code"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"Your QR Code will appear here." /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> <div> <a asp-action
"img-thumbnail" alt="Your QR Code will appear here." /> </div> </form> </div> </div> (Of div) <a asp-action
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt
"@ViewBag.QrCodeUri" class="img-thumbnail" alt
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class
"form-group"> <img src="@ViewBag.QrCodeUri" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src
"btn btn-primary"> Create QR Code</a> </div> <div class="form-group"> <img src
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class="btn btn-primary"> Create QR Code</a> </div> <div class
"#" class="btn btn-primary"> Create QR Code</a> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href="#" class
"form-group"> <a href="#" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> <a href
"text-danger"></span> </div> <div class="form-group"> <a href
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class
"QRCodeText" class="text-danger"></span> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for="QRCodeText" class
"form-control" /> <span asp-validation-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class="form-control" /> <span asp-validation-for
"QRCodeText" class="form-control" /> <span asp-validation-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for="QRCodeText" class
"control-label"></label> <input asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class="control-label"></label> <input asp-for
"QRCodeText" class="control-label"></label> <input asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for="QRCodeText" class
"form-group"> <label asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label asp-for
"text-danger"></div> <div class="form-group"> <label asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary="ModelOnly" class
"CreateQRCode"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
"col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action
"row"> <div class="col-md-4"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend (Of h1) Generate QR Code</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
@
If True Then
Await Html.RenderPartialAsync("_ValidationScriptsPartial")
End If
End Class

app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}"
);app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}"
);app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")このアクションは、デフォルトのルートをHomeControllerからQrCodeControllerに変更します。
プロジェクトをコンパイルして実行します。

テキストボックスに任意のテキストを入力し、"作成"をクリックします。これにより、下に示す新しいQRコードが作成されます。

QRコードにスタイルを追加

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px size
Margins = 10, // px margins
Color = Color.YellowGreen // custom color
};
// Save QR Code with style options as a bitmap
AnyBitmap qrImage = qrCode.Save(style);
// Save QR Code Bitmap to File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
try
{
string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
// Create a QR Code object
QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
QrStyleOptions style = new QrStyleOptions
{
Dimensions = 300, // px size
Margins = 10, // px margins
Color = Color.YellowGreen // custom color
};
// Save QR Code with style options as a bitmap
AnyBitmap qrImage = qrCode.Save(style);
// Save QR Code Bitmap to File
qrImage.SaveAs(filePath);
string fileName = Path.GetFileName(filePath); // qr code file
string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
ViewBag.QrCodeUri = imageUrl;
}
catch (Exception)
{
throw;
}
return View();
}<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
Try
Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
' Create a QR Code object
Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
Dim style As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.YellowGreen
}
' Save QR Code with style options as a bitmap
Dim qrImage As AnyBitmap = qrCode.Save(style)
' Save QR Code Bitmap to File
qrImage.SaveAs(filePath)
Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
ViewBag.QrCodeUri = imageUrl
Catch e1 As Exception
Throw
End Try
Return View()
End Function出力

ライセンス (トライアル利用可能)
IronQRを試してみたい開発者向けに、トライアルライセンスがこちらで利用可能です。 このライセンスキーはappSettings.jsonファイルに配置する必要があります。これを行うと、上記の画像に表示されるウォーターマークが削除されます。
{
"IronQR.License.LicenseKey": "My key"
}結論
この記事では、IronQRを使用してASP.NET CoreでQRコードを生成する方法を探ります。 IronQRの力を活用することで、開発者はQRコード生成機能を簡単にウェブアプリケーションに統合できます。 チケット発行、認証、情報共有のいずれにおいても、QRコードはデータを効率的に伝達するための多目的ソリューションを提供します。 IronQRを使用すれば、ASP.NET CoreでQRコードを作成およびカスタマイズするのがこれまでになく簡単になります。 QR コード生成を ASP.NET Core プロジェクトに組み込み、動的なデータのエンコードと共有の可能性を広げましょう。
よくある質問
ASP.NET CoreでQRコードを生成するにはどうすればよいですか?
ASP.NET CoreでQRコードを生成するには、IronQRライブラリを使用できます。Visual Studioで新しいASP.NETプロジェクトを作成し、パッケージマネージャーを通してIronQRをインストールし、その使いやすいAPIを使用してQRコードを生成するコードを実装します。
ASP.NET CoreでのQRコード用のカスタマイズオプションはどれですか?
IronQRは、ASP.NET CoreでのQRコード用に、サイズ変更、マージンの調整、色の変更、ロゴの追加といったいくつかのカスタマイズオプションを提供します。これらはQrStyleOptionsクラスを使用して管理できます。
ASP.NET CoreでのQRコード生成におけるエラー修正はどのように機能しますか?
IronQRを使用すると、ASP.NET CoreでQRコードを生成する際にエラー修正レベルを管理できます。これにより、QRコードに必要なレベルのエラー耐性が確保され、信頼性のあるスキャンが可能になります。
ASP.NET Coreで異なる画像形式からQRコードを読み取ることはできますか?
はい、ASP.NET CoreのIronQRを使用すると、jpg、png、svg、bmp、gif、tif、tiffなど、さまざまな画像形式からQRコードを読み取ることができ、System.Drawing BitmapsおよびIronDrawing Images(AnyBitmap)も対応しています。
フルライセンスなしでIronQRをテストすることは可能ですか?
はい、IronQRの試用ライセンスはIron Softwareのウェブサイトから取得できます。この試用ライセンスを使ってライブラリをテストし、アプリのテストフェーズ中に表示するQRコードから透かしを削除するために、ライセンスをappSettings.jsonファイルに配置します。
WebアプリケーションでQRコードを使用する利点は何ですか?
QRコードは効率的なデータの保存と送信を可能にするため、Webアプリケーションにとって有益です。特に、チケットシステム、認証、在庫管理のようなアプリケーションで役立ち、情報を動的にエンコードして共有する方法を提供します。
機械学習はASP.NET CoreでのQRコード検出をどのように強化しますか?
IronQRは高度なカスタム機械学習モデルを使用してQRコード検出を行い、コード認識において高精度で信頼性のある検出を実現します。より軽量なソリューションを好むユーザーのために、非MLのスリムモードも利用可能です。





