フッターコンテンツにスキップ
IRONQRの使用

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コードを生成し、エラー訂正レベルを設定し、機械学習による検出を使用して既存のコードを読み取る方法を示します。

無料トライアルで今すぐIronQRを使い始める

今IronQRを始めましょう。
green arrow pointer

どのように.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パッケージが表示されていることを確認することで検証できます。 インストールが完了すると、 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")
$vbLabelText   $csharpLabel

出力

QRコードジェネレーター.NET Core:C#でクイックレスポンスコードを作成および読み取ります:画像1 - URLから作成されたQR

QrWriter.Write() メソッドはデータを QrCodeData に処理します。このデータには、QR シンボルの生のモジュール (黒と白の四角) が含まれています。 IronQRは入力テキストが数値データ、英数字テキスト文字列、バイト配列のために効率的にエンコードされるように、内部のペイロードジェネレータを使用します。

IronSoftware.DrawingAnyBitmap クラスはクロスプラットフォームの画像保存を提供するため、同じコードが Windows、macOS、Linux で変更なしで動作します。 用途に応じて、出力結果をPNG、JPEG、またはその他のサポートされている形式で保存できます。

動作例については、 QRコード生成のサンプルページをご覧ください。基本的な生成ワークフローに加え、追加の設定オプションも掲載されています。

エラー訂正レベルとは何ですか、そしてなぜ重要なのですか?

エラー訂正は、QRシンボルがスキャン可能な状態を維持しながら、どの程度のダメージを受けるかを決定します。 これは、ブランディングと耐久性を可能にするオプションの高度な機能の1つです。 QRコード規格(ISO/IEC 18004)では、4段階の誤り訂正レベルが定義されており、それぞれデータ容量と耐障害性のトレードオフの関係にある。

QRコードのエラー訂正レベルとその使用例
レベル データ復旧 最適な用途
L(低) 約7% クリーンなデジタルディスプレイ
M(中) 約15% 汎用用途
Q(四分位) 約25% 印刷物
H(高) 約30% 過酷な環境、ロゴの重ね合わせ

QrOptionsを使用してエラー訂正を設定する:

using IronQr;
using IronSoftware.Drawing;

// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.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(QrErrorCorrectionLevel.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")
$vbLabelText   $csharpLabel

QR出力

QRコードジェネレーター.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")
$vbLabelText   $csharpLabel

スタイル付きQRコード

QRコードジェネレーター.NET Core:C#でクイックレスポンスコードを作成および読み取ります:画像3 - スタイル付きQRコード出力

Dimensions プロパティは、出力画像のサイズをピクセル単位で設定します。 Margins プロパティは、QR コードの周囲の空白領域である静止領域を制御します。この空白領域は、スキャナーがシンボル境界を正しく識別するために必要な領域です。 QRコードのカスタマイズガイドでは、背景色やモジュールの形状オプションなど、その他のスタイル設定プロパティについても説明しています。

ロゴを埋め込む場合は、QRコード全体の面積の30%以下に抑えてください。 この閾値を超えると、レベルHの補正を行った場合でも、読みやすさが損なわれる可能性があります。 カスタマイズ後に複数のQRコードスキャナーアプリでテストを行うのは良い習慣です。

どのようにASP.NET CoreでQRコードを生成しますか?

QRコード生成を.NET Coreに統合することは、Model View Controllerパターンに従います。 以下は、アクションメソッドからQRコード画像を直接返すクラスの実装例です。

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
$vbLabelText   $csharpLabel

このエンドポイントは、QRコードデータをパラメータとして受け取り、生成されたPNG画像を直接返します。 この手法は、 ASP.NET Core Web APIプロジェクトとRazorビューの両方で機能します。

運用環境のASP.NET Coreアプリケーションでは、CPU オーバーヘッドを削減するために、頻繁に生成される QR コードを IMemoryCache または IDistributedCache を使用してキャッシュすることを検討してください。 静的URL、製品識別子、イベントリンクなどのQRコードは、リクエスト間で変化しないため、キャッシュに最適な候補です。

IronQRを最小限のAPIエンドポイントに統合することも可能です。 ASP.NET Core統合チュートリアルでは、依存性注入パターンやBlazorコンポーネントからQRコード画像を配信する方法など、完全な例を提供しています。

Program.cs で IronQR のライセンスキーをトップレベルのステートメントパターンを使用して登録すると、起動構成がすっきりします。

using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronQr

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

出力

QRコードジェネレーター.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
$vbLabelText   $csharpLabel

QRコード読み取り出力

QRコードジェネレーター.NET Core:C#でクイックレスポンスコードを作成および読み取ります:画像5 - QRコードから読み取ったデータ

QrResult オブジェクトには、デコードされた値と位置メタデータが含まれており、これを使用して、UI オーバーレイやドキュメント処理パイプラインで検出された QR コード領域を強調表示できます。 この機能により、 IronQRは文書処理システムや在庫管理システムに最適です。

この機械学習モデルは、クラウドAPI呼び出しを必要とせず、完全にデバイス上で動作するため、エアギャップ環境やオフラインアプリケーションに適しています。 ZXing .NETのような従来のCVベースの検出器は、クリーンで正面を向いたコードにはうまく機能しますが、グレア、回転、損傷などの現実世界の状況ではしばしば苦労します。 IronQRの機械学習アプローチは、これらのシナリオを確実に処理します。

文書を一括処理する場合、複数の画像を順番にリーダーに渡して、すべての結果を収集できます。 QRコード読み取りに関するドキュメントでは、静止画像ファイルに加えて、PDFページやカメラストリームからの読み取りについても説明しています。

クロスプラットフォーム サポートはどのように機能しますか?

System.Drawing.Common ( .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を他 for .NET QRライブラリと比較するとどうですか?

.NETのQRコードライブラリはいくつか存在し、それぞれに異なる長所と短所がある。 違いを理解することで、プロジェクトに最適なツールを選ぶことができます。

QRCoderはMITライセンスのオープンソースライブラリです。 これは単純なQRコード生成には適していますが、QRコードの読み取り機能や機械学習による検出機能は含まれていません。 IronQRのスタイル付き出力サポートと比較すると、出力オプションはより限定的です。

ZXing .NETは、Java版ZXingライブラリをC#に移植したものです。 読み書きの両方をサポートするが、破損したり回転したりしたコードの処理に苦労する従来型のコンピュータビジョン技術に依存している。 クロスプラットフォームでの画像処理には、追加の設定が必要です。

IronQRは、生成と読み取りを単一のパッケージで提供し、専用サポートを含むEnterpriseライセンスも用意されています。 ML を活用したリーダー、スタイル付き出力、および IronSoftware.Drawing の統合により、本番環境アプリケーション向けのより完全なソリューションとなります。

詳細な機能比較については、 IronQRとQRCoderの比較記事、およびIronQRとZXingの比較記事を参照してください。

次のステップは何ですか?

IronQRは、.NET CoreにおけるQRコードの生成と読み取りのための完全なソリューションを提供します。 複雑なペイロードジェネレーターや、生のモジュールとデータの組み立てを自動的に処理することで、開発サイクルを簡素化します。 シンプルなオープンソースライブラリの代替品が必要な場合でも、高度なオプション機能を備えたシステムが必要な場合でも、IronQRのクロスプラットフォームアーキテクチャは信頼性の高い動作を保証します。

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コードの読み取り精度を向上させ、厳しい条件下でも信頼性の高いデータ取得を保証します。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね