QRコード.NET Coreジェネレーター&リーダー|IronQR
適切なライブラリを選択すれば、 .NET CoreでQRコードジェネレーターを作成するのは簡単です。 QRコードジェネレータの要件を評価する際、開発者は使いやすさとオプションの高度な機能のバランスを求めます。 ASP.NET Core Webアプリケーションやコンソールツールの構築にかかわらず、開発者は、基本的なQRコードの作成から高度なカスタマイズまで、すべてを処理する信頼性の高いライブラリを必要としています。
IronQRは.NET Core用の強力なソリューションで、文字列、URL、日本語Unicodeテキストのエンコーディングをサポートします。 最初はQRCoderライブラリ(寛容なMITライセンスで知られる)のような.NETオープンソースライブラリを探す人もいるかもしれませんが、IronQRは機械学習機能と専用サポートを備えたエンタープライズグレードの代替を提供します。
このチュートリアルでは、.NET Coreプロジェクト内でQRコードを生成し、エラー訂正レベルを設定し、機械学習による検出を使用して既存のコードを読み取る方法を示します。
どのように.NET CoreでQRコードライブラリをインストールしますか?
まず、Visual Studioを開き、作成ボタンをクリックして新しいプロジェクトを開始します。 プロジェクト名を割り当てたら、NuGetパッケージマネージャを通じてライブラリをインストールするのに数秒かかります。 QRCoder NuGetパッケージを検索する開発者もいるかもしれませんが、パッケージマネージャーコンソールで以下のコマンドを実行することで、IronQRフレームワークをインストールすることができます:
Install-Package IronQR
あるいは、NuGet Package Manager UIで "IronQR "を検索し、インストールボタンをクリックしてください。 このライブラリは、.NET Core 3.x、.NET 5、6、7、8、9、10と互換性のある.NET実装を提供し、最新のWeb開発やマルチプラットフォームのプロジェクトに最適です。
インストール後、必要なusingディレクティブをファイルの先頭に追加してください。IronQRはクロスプラットフォームの画像処理のためにIronSoftware.Drawingと統合され、.NET 6以降のクロスプラットフォームでは非推奨となったSystem.Drawing.Commonのようなプラットフォーム固有の依存関係が不要になります。
プロジェクトのパッケージ参照を.csprojファイルで確認するか、NuGetパッケージがPackage Managerコンソール出力に表示されることを確認することで、インストールが成功したことを確認できます。 インストールが完了すると、 IronQR APIリファレンスがすぐに利用可能になります。
QRコードはどのように生成しますか?
QrWriterクラスは、便利な拡張メソッドと組み合わせて使用されることが多く、QRコードの生成を容易にします。 以下は、トップレベルのステートメントを使用してわずか数行のコードでQRコードを生成する完全な例のソースコードです。
using IronQr;
using IronSoftware.Drawing;
// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");
// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");
// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate a QR code from input text
Dim qrcode As QrCode = QrWriter.Write("https://ironsoftware.com")
' Save as PNG image
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("website-qr.png")
出力
QR Code Generator .NET Core:C#でクイックレスポンスコードを作成し、読み取る:画像1 - URLから作成されたQR。
CODE-50465--@@メソッドはデータをQrCodeDataに処理し、QRシンボルの生のモジュール(黒と白の正方形)を含む。 IronQRは入力テキストが数値データ、英数字テキスト文字列、バイト配列のために効率的にエンコードされるように、内部のペイロードジェネレータを使用します。
CODE-50468--@@のAnyBitmap@クラスは、クロスプラットフォームの画像保存を提供するため、同じコードが修正なしでWindows、macOS、Linuxで動作します。 用途に応じて、出力結果をPNG、JPEG、またはその他のサポートされている形式で保存できます。
動作例については、 QRコード生成のサンプルページをご覧ください。基本的な生成ワークフローに加え、追加の設定オプションも掲載されています。
エラー訂正レベルとは何ですか、そしてなぜ重要なのですか?
エラー訂正は、QRシンボルがスキャン可能な状態を維持しながら、どの程度のダメージを受けるかを決定します。 これは、ブランディングと耐久性を可能にするオプションの高度な機能の1つです。 QRコード規格(ISO/IEC 18004)では、4段階の誤り訂正レベルが定義されており、それぞれデータ容量と耐障害性のトレードオフの関係にある。
| レベル | データ復旧 | 最適な用途 |
|---|---|---|
| L(低) | 約7% | クリーンなデジタルディスプレイ |
| M(中) | 約15% | 汎用用途 |
| Q(四分位) | 約25% | 印刷物 |
| H(高) | 約30% | 過酷な環境、ロゴの重ね合わせ |
QrOptionsを使用してエラー訂正を設定する:
using IronQr;
using IronSoftware.Drawing;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionレベル.High, 20);
// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionレベル.High, 20);
// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Configure with high error correction level
Dim options As New QrOptions(QrErrorCorrectionLevel.High, 20)
' Generate QR code with options
Dim qrcode As QrCode = QrWriter.Write("Product-12345", options)
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("product-qr.png")
QR出力
QR Code Generator .NET Core:C#でクイックレスポンスコードを作成し、読み取る:画像2 - エラー訂正機能付きQRコードの生成。
2番目のパラメータは、QRコードのサイズとデータ容量を制御するために、許容される最大バージョン番号を指定します。 ロゴ画像を追加する場合、または物理的な摩耗のシナリオでは、より高いエラー修正が不可欠です。
QRコードにロゴを重ねる場合は、必ずレベルHを使用してください。 追加された冗長性により、ロゴによって隠されたモジュールを補い、コードの読み取り可能性を維持します。 IronQRのエラー訂正に関するドキュメントでは、バージョン選択がデータ容量と訂正レベルにどのように影響するかについて説明しています。
ロゴと色を使ってQRコードの外観をカスタマイズするには?
IronQRのQrStyleOptionsを使用すると、カスタムカラー、サイズ、埋め込みロゴなどを用いて、ブランドに合わせたQRコードを生成できます。 これは、視覚的な一貫性が重要なマーケティング資料、製品パッケージ、イベントチケットなどに特に役立ちます。
using IronQr;
using IronSoftware.Drawing;
var styleOptions = new QrStyleOptions
{
Dimensions = 300,
Margins = 10,
Color = Color.DarkBlue,
Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};
QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;
var styleOptions = new QrStyleOptions
{
Dimensions = 300,
Margins = 10,
Color = Color.DarkBlue,
Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};
QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
Dim styleOptions As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.DarkBlue,
.Logo = New QrLogo With {.Bitmap = AnyBitmap.FromFile("company-logo.png")}
}
Dim qrcode As QrCode = QrWriter.Write("https://yourcompany.com")
Dim qrImage As AnyBitmap = qrcode.Save(styleOptions)
qrImage.SaveAs("branded-qr.png")
スタイル付きQRコード
QR Code Generator .NET Core:C#でクイックレスポンスコードを作成し、読み取る:画像3 - スタイル付きQRコード出力。
CODE-50469--@@プロパティは、出力画像サイズをピクセル単位で設定します。 CODE-50470--@@プロパティはクワイエットゾーン(スキャナがシンボルの境界を正しく識別するために必要なQRコードの周囲の空白の境界)を制御します。 QRコードのカスタマイズガイドでは、背景色やモジュールの形状オプションなど、その他のスタイル設定プロパティについても説明しています。
ロゴを埋め込む場合は、QRコード全体の面積の30%以下に抑えてください。 この閾値を超えると、レベルHの補正を行った場合でも、読みやすさが損なわれる可能性があります。 カスタマイズ後に複数のQRコードスキャナーアプリでテストを行うのは良い習慣です。
どのようにASP.NET CoreでQRコードを生成しますか?
QRコード生成を.NET Coreに統合することは、Model View Controllerパターンに従います。 以下は、アクションメソッドから直接QRコード画像を返すHomeController@クラスの実装です:
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace Examples
{
public class HomeController : Controller
{
public IActionResult GenerateQR(string content)
{
QrCode myQr = QrWriter.Write(content);
AnyBitmap qrImage = myQr.Save();
byte[] imageBytes = qrImage.ExportBytes();
return File(imageBytes, "image/png");
}
}
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace Examples
{
public class HomeController : Controller
{
public IActionResult GenerateQR(string content)
{
QrCode myQr = QrWriter.Write(content);
AnyBitmap qrImage = myQr.Save();
byte[] imageBytes = qrImage.ExportBytes();
return File(imageBytes, "image/png");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace Examples
Public Class HomeController
Inherits Controller
Public Function GenerateQR(content As String) As IActionResult
Dim myQr As QrCode = QrWriter.Write(content)
Dim qrImage As AnyBitmap = myQr.Save()
Dim imageBytes As Byte() = qrImage.ExportBytes()
Return File(imageBytes, "image/png")
End Function
End Class
End Namespace
このエンドポイントは、QRコードデータをパラメータとして受け取り、生成されたPNG画像を直接返します。 この手法は、 ASP.NET Core Web APIプロジェクトとRazorビューの両方で機能します。
本番の.NET Coreアプリケーションでは、頻繁に生成されるQRコードをIMemoryCacheまたはIDistributedCacheを使ってキャッシュし、CPUオーバーヘッドを減らすことを検討してください。 静的URL、製品識別子、イベントリンクなどのQRコードは、リクエスト間で変化しないため、キャッシュに最適な候補です。
IronQRを最小限のAPIエンドポイントに統合することも可能です。 ASP.NET Core統合チュートリアルでは、依存性注入パターンやBlazorコンポーネントからQRコード画像を配信する方法など、完全な例を提供しています。
IronQRのライセンスキーをProgram.csにトップレベルのステートメントパターンで登録することで、スタートアップの設定をクリーンな状態に保つことができます:
using IronQr;
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronQr
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY"
IronQRのメソッドを呼び出す前に、ライセンスキーを設定してください。 開発段階では、 IronQRのライセンスページから入手できる無料トライアルキーを適用できます。
どのように日本語Unicodeテキストをエンコードしますか?
IronQRは漢字モードによる日本語Unicodeテキストのエンコードをサポートしており、標準エンコードよりも少ないデータセグメントで日本語Unicode文字を効率的にエンコードできます。 これにより、同じコンテンツでもQRコードのバージョン(サイズ)が縮小され、よりシンプルなシンボルが生成され、スキャン速度が向上します。
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
出力
QR Code Generator .NET Core:C#でクイックレスポンスコードを作成し、読み取る:画像4 - 日本語UnicodeテキストでエンコードされたQRコード。
このライブラリは、日本語文字を検出すると自動的に漢字モードを選択し、データセグメントを手動で設定することなくQRコードのデータ容量を最適化します。 これは、eコマースプラットフォーム、レストランのメニュー、旅行情報キオスクなど、日本語を話すユーザーを対象としたアプリケーションにとって重要です。
漢字モードでは、 Shift JIS文字セットの文字がエンコードされます。 アプリケーションが同じ文字列内で日本語とラテン語の両方のテキストを処理する場合、 IronQRは内部的にモード切り替えを処理し、各セグメントに対して最も効率的なエンコーディングを選択します。 .NETにおける国際化のベストプラクティスについては、 Microsoft のグローバリゼーションに関するドキュメントに、文字エンコーディングに関する役立つ情報が記載されています。
機械学習で QR コードを読み取るには?
IronQRは、機械学習を活用したQRコードリーダーによって他社との差別化を図っている。 この機械学習モデルは、斜めから、あるいは部分的に隠れた画像からでもQRコードを読み取ることができ、高い精度を実現します。これは、多くのオープンソースの代替手段で使用されている従来の閾値ベースの検出アルゴリズムに比べて大きな利点です。
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var result in results)
{
Console.WriteLine($"Found: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var result in results)
{
Console.WriteLine($"Found: {result.Value}");
}
Imports IronQr
Imports IronSoftware.Drawing
' Load image containing QR code
Dim inputBmp As AnyBitmap = AnyBitmap.FromFile("scanned-document.png")
Dim imageInput As New QrImageInput(inputBmp)
' Read with ML-powered detection
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
For Each result In results
Console.WriteLine($"Found: {result.Value}")
Next
QRコード読み取り出力
QR Code Generator .NET Core:C#でクイックレスポンスコードを作成し、読み取る:画像5 - QRコードからデータを読み取る。
CODE-50475-@@オブジェクトには、デコードされた値と位置メタデータが含まれており、UIオーバーレイやドキュメント処理パイプラインで検出されたQRコード領域を強調表示するために使用できます。 この機能により、 IronQRは文書処理システムや在庫管理システムに最適です。
この機械学習モデルは、クラウドAPI呼び出しを必要とせず、完全にデバイス上で動作するため、エアギャップ環境やオフラインアプリケーションに適しています。 ZXing .NETのような従来のCVベースの検出器は、クリーンで正面を向いたコードにはうまく機能しますが、グレア、回転、損傷などの現実世界の状況ではしばしば苦労します。 IronQRの機械学習アプローチは、これらのシナリオを確実に処理します。
文書を一括処理する場合、複数の画像を順番にリーダーに渡して、すべての結果を収集できます。 QRコード読み取りに関するドキュメントでは、静止画像ファイルに加えて、PDFページやカメラストリームからの読み取りについても説明しています。
クロスプラットフォーム サポートはどのように機能しますか?
CODE-50476--@@(.NET 6+ではクロスプラットフォームでの使用は非推奨)に依存するソリューションとは異なり、IronQRは真のマルチプラットフォーム・プロジェクトのためにIronSoftware.Drawingを使用します。 あなたのコードは、Windows、macOS、Linux、iOS、Androidで一貫して動作します。 マルチプラットフォームプロジェクトの場合、SkiaSharpの代替手段は不要です。IronQRがプラットフォームの抽象化を内部的に処理します。
.NETのクロスプラットフォームに関するドキュメントでは、 .NET 10におけるプラットフォーム互換性の全体像が説明されています。IronQRは、プラットフォーム固有のAPIを一切使用しないことで、これらの原則に沿っています。
IronQRは以下のデプロイメントターゲットをサポートしています。
- .NET 10、9、8、7、6 -- すべての最新の.NETバージョン
- .NET Core 3.x -- 最新の.NETにまだ移行していないアプリケーション向け
- XamarinとMAUI - モバイルアプリケーション開発用
- Azure FunctionsとAWS Lambda - サーバーレスワークロード向け
Dockerコンテナ内で実行する場合、標準の.NETランタイムイメージ以外に追加のシステムパッケージは必要ありません。 これは、ネイティブのGDI+依存性を必要とするライブラリと比較して、Dockerfile@を簡素化します。 IronQRデプロイメントガイドは、コンテナ環境とクラウド環境の設定をカバーしています。
IronQRを他の.NET QRライブラリと比較するとどうですか?
.NETのQRコードライブラリはいくつか存在し、それぞれに異なる長所と短所がある。 違いを理解することで、プロジェクトに最適なツールを選ぶことができます。
QRCoderはMITライセンスのオープンソースライブラリです。 これは単純なQRコード生成には適していますが、QRコードの読み取り機能や機械学習による検出機能は含まれていません。 IronQRのスタイル付き出力サポートと比較すると、出力オプションはより限定的です。
ZXing .NETは、Java版ZXingライブラリをC#に移植したものです。 読み書きの両方をサポートするが、破損したり回転したりしたコードの処理に苦労する従来型のコンピュータビジョン技術に依存している。 クロスプラットフォームでの画像処理には、追加の設定が必要です。
IronQRは、生成と読み取りを単一のパッケージで提供し、専用サポートを含むEnterpriseライセンスも用意されています。 ML-poweredリーダー、スタイル付き出力、およびIronSoftware.Drawing統合により、本番アプリケーションのためのより完全なソリューションとなっています。
詳細な機能比較については、 IronQRとQRCoderの比較記事、およびIronQRとZXingの比較記事を参照してください。
次のステップは何ですか?
IronQRは、.NET CoreにおけるQRコードの生成と読み取りのための完全なソリューションを提供します。 複雑なペイロード・ジェネレータや、生のモジュールとデータのアセンブリを自動的に処理することで、開発サイクルを簡素化します。 シンプルなオープンソースライブラリの代替品が必要な場合でも、高度なオプション機能を備えたシステムが必要な場合でも、IronQRのクロスプラットフォームアーキテクチャは信頼性の高い動作を保証します。
IronQRを使った開発を続けるには、以下のリソースを参照してください。
- IronQR NuGetパッケージ-- 最新の安定版をインストールします
- IronQR APIリファレンス-- クラスとメソッドの完全なドキュメント
- QRコードの例-- 一般的なシナリオに対応した、コピー&ペースト可能なコード
- IronQRチュートリアル-- 特定のユースケース向けのステップバイステップガイド -ライセンスオプション- プロジェクトに最適なプランを選択してください
無料トライアルを開始して、初期費用なしでIronQRの真の可能性を解き放ちましょう。
よくある質問
.NETコアでIronQRを使ってQRコードを生成するには?
.NET CoreでQRコードを生成するには、基本的なQRコードの作成から高度なカスタマイズ機能まで使いやすいライブラリを提供するIronQRを利用します。
IronQRのQRコード生成にはどのようなカスタマイズオプションがありますか?
IronQRは、エラー訂正レベルの設定やQRコードへのロゴの追加など、様々なカスタマイズオプションを提供し、お客様のご要望にお応えします。
IronQR はASP.NET CoreウェブアプリケーションのQRコード生成を処理できますか?
はい、 IronQRはASP.NET Core Web アプリケーションと完全に互換性があるため、開発者は QR コード生成をプロジェクトに統合できます。
.NET CoreのIronQRでQRコードを読むことは可能ですか?
IronQRは高精度でQRコードを読み取るように設計されており、機械学習技術を活用して正確な検出とデータ抽出を保証します。
IronQRがQRコードジェネレーターを探している開発者に適している理由は何ですか?
IronQRは使いやすさと高度な機能のバランスを提供し、多用途で信頼性の高いQRコードライブラリを必要とする開発者にとって理想的な選択肢です。
IronQRのQRコード処理に高度な機能はありますか?
IronQRには、エラー訂正の設定、ブランディング要素の追加、様々なQRコードフォーマットの処理などの高度な機能が含まれています。
IronQRはどのようにしてQRコードの読み取り精度を確保しているのですか?
IronQRは機械学習アルゴリズムを利用してQRコードの読み取り精度を向上させ、厳しい条件下でも信頼性の高いデータ取得を保証します。



