NuGetパッケージを使用して C# で QR コードを生成する方法
.NETアプリケーションでQRコードを生成することは、かつてないほど簡単になりました。 適切なNuGetパッケージを使用すれば、わずか数行のコードでQRコードを作成し、外観をカスタマイズし、複数の出力形式で保存することができます。 IronQRは、 .NET Core、 .NET Framework、および.NET 5~10に対応したクロスプラットフォームサポートを備えた、エンタープライズグレードのQRコード生成機能を提供します。
このチュートリアルでは、 IronQR NuGetパッケージをインストールして、すぐにQRコードの生成を開始する方法を説明します。 在庫管理システム、イベントチケット販売プラットフォーム、マーケティングアプリケーションなど、どのようなシステムを構築する場合でも、 IronQRはProfessionalQRコード実装に必要なツールを提供します。
QRコードのNuGetパッケージをインストールするにはどうすればよいですか?
NuGetパッケージマネージャを使ったIronQRのインストールは数秒で完了します。 Visual Studio でNuGetパッケージ マネージャー コンソールを開き、次のコマンドを実行するか、CLI 環境の場合は dotnet add package コマンドを使用します。
Install-Package IronQR
NuGetパッケージは、すべての依存関係を自動的に処理し、ターゲットフレームワークとの互換性を保証します。 IronQRは.NET Framework 4.6.2以降、 .NET Core 2.0以降、および.NET 5~10をサポートしており、あらゆるVisual Studioプロジェクトに対応できる汎用性の高いライブラリです。
コードを記述する前に、無料トライアルライセンスキーが必要です。 アプリケーションの起動時に早めに設定することで、以降のすべての呼び出しが認証されるようになります。
using IronQr;
// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
using IronQr;
// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronQr
' Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
ライセンスキーが設定されていれば、アプリケーションは出力画像に透かしを入れずにQRコードを生成、読み取り、カスタマイズする準備が整います。
最初のQRコードを生成するにはどうすればいいですか?
最初のQRコードを作成するには、最小限のコードで済みます。 QrWriter クラスは、ほとんどのユースケースでうまく機能する適切なデフォルト値を使用して QR コードの生成を処理します。
using IronQr;
using IronSoftware.Drawing;
// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");
// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();
// Export to PNG file
qrImage.SaveAs("hello-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");
// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();
// Export to PNG file
qrImage.SaveAs("hello-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate a QR code from text data
Dim myQr As QrCode = QrWriter.Write("Hello World")
' Save QR code as bitmap image
Dim qrImage As AnyBitmap = myQr.Save()
' Export to PNG file
qrImage.SaveAs("hello-qr.png")
QRコード出力

QrWriter.Write() メソッドは文字列データを受け取り、QR シンボルを含む QrCode オブジェクトを返します。 Save() メソッドはこれを AnyBitmap に変換します。これは、さまざまな画像形式へのエンコードや、XAML パス用のベクター データのエクスポートをサポートします。 このアプローチは、 .NET 6 以降 Windows のみに依存するライブラリとは異なり、プラットフォーム固有の依存関係なしに Windows、macOS、Linux で動作します。
上記の3行のパターンは、文字列のエンコード、ビットマップの取得、ファイルの書き込みという最も一般的なシナリオを網羅しています。実際の運用では、プレーンテキストではなく、URL文字列、製品識別子、またはJSONペイロードを渡すことになるでしょう。
適切なエラー訂正レベルはどのように選択すればよいですか?
QRコードは、ISO/IEC 18004 QRコード規格で定義されている4つのエラー訂正レベルをサポートしており、これにより、コードがスキャン可能な状態を維持できる損傷の程度が決まります。 IronQRは、QrOptionsクラスを通じて、4つのレベルすべてをサポートしています。
| レベル | 回復力 | 最適な用途 |
|---|---|---|
| L(低) | 約7% | クリーンな環境、最大限のデータ密度 |
| M(中) | 約15% | 一般使用(デフォルト) |
| Q(四分位) | 約25% | 産業用途 |
| H(高) | 約30% | ロゴ、屋外看板、部分的な遮蔽 |
using IronQr;
using IronSoftware.Drawing;
// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High);
// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High);
// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Configure high error correction level
Dim options As New QrOptions(QrErrorCorrectionLevel.High)
' Generate QR code with options
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim image As AnyBitmap = qr.Save()
image.SaveAs("high-correction-qr.png")
出力

エラー訂正レベルを高くすると、より多くの未加工モジュールを含む高密度のQRシンボルが作成されるため、コードが部分的に不明瞭になったり破損したりしても読み取り可能な状態を維持できます。 パッケージに印刷されるコードやロゴに埋め込まれるコードには、レベルHが最適です。損傷が問題とならないデジタル表示専用の場合は、レベルMがデータ容量と信頼性のバランスが取れています。
スキャンレベルの選択ミスは、本番環境におけるスキャン失敗の一般的な原因の一つです。 QRコードが物理的な媒体に表示される場合、またはカメラからの距離が変化する場合は、レベルQまたはHを使用し、展開前に複数のスキャナーアプリケーションで出力結果を確認してください。
QRコードの外観をカスタマイズするにはどうすればよいですか?
IronQR は、QrStyleOptions を通じて豊富なスタイリング オプションを提供し、カスタム カラー、寸法、余白、ロゴの埋め込みを可能にします。 ブランド名入りのQRコードは、視覚的に既知のブランドと結び付けることができるため、マーケティングの場面でより効果を発揮します。
using IronQr;
using IronSoftware.Drawing;
// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
Dimensions = 300, // Width and height in pixels
Margins = 10, // Quiet zone in pixels
Color = Color.DarkBlue,
BackgroundColor = Color.White
};
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
Dimensions = 300, // Width and height in pixels
Margins = 10, // Quiet zone in pixels
Color = Color.DarkBlue,
BackgroundColor = Color.White
};
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Create styled QR code with custom colors
Dim styleOptions As New QrStyleOptions With {
.Dimensions = 300, ' Width and height in pixels
.Margins = 10, ' Quiet zone in pixels
.Color = Color.DarkBlue,
.BackgroundColor = Color.White
}
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim styledImage As AnyBitmap = qr.Save(styleOptions)
styledImage.SaveAs("styled-qr.png")
スタイル付きQR出力

Dimensions プロパティは、幅と高さの両方をピクセル単位で設定します。 Margins プロパティは、QR シンボルを囲む白い境界線である静止領域を制御します。この境界線は、スキャナーがコードの境界を特定するために使用します。 推奨される最小値である4モジュールを下回るマージンを設定すると、古いデバイスではスキャンエラーが発生する可能性があります。
QRコードにロゴを追加することで、ブランドの認知度を高めることができます。 このスタイリングシステムは、スキャン性を維持しながらロゴを自動的に配置します。これは、手動で配置計算を行う必要があるオープンソースの代替システムに比べて大きな利点です。
QRコードをさまざまな出力形式で保存するにはどうすればよいですか?
IronQRはPNG、JPEG、GIF、TIFF、BMP、SVGを含む複数の出力フォーマットをサポートしています。 SaveAs メソッドは、ファイル拡張子からフォーマットを自動的に検出します。
using IronQr;
using IronSoftware.Drawing;
QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();
// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");
// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
using IronQr;
using IronSoftware.Drawing;
QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();
// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");
// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
Imports IronQr
Imports IronSoftware.Drawing
Dim qr As QrCode = QrWriter.Write("Format demonstration")
Dim image As AnyBitmap = qr.Save()
' Save to raster image formats
image.SaveAs("qr-output.png")
image.SaveAs("qr-output.jpg")
image.SaveAs("qr-output.gif")
' Get as byte array for HTTP responses or database storage
Dim pngBytes As Byte() = image.ExportBytes()
複数のQRコード出力フォーマット

ExportBytes() メソッドは、ディスクに書き込まずに HTTP 経由で QR コード画像を返す必要がある Web アプリケーションで特に役立ちます。 バイト配列は、レスポンスストリームに直接書き込むことも、オンデマンドで取得できるようにデータベースの列に保存することもできます。
IronQRは、PDF文書にQRコードを埋め込むために、StampToExistingPdfPageメソッドを提供しており、既存の文書にQRコードを直接配置できます。 これは追加のPDFライブラリなしでネイティブに動作するため、依存関係の数を最小限に抑えたいマイクロサービス環境では重要です。
IronQR NuGetパッケージとQRCoderを比較するにはどうすればよいですか?
QRCoderライブラリは、 .NETでQRコードを生成するための人気のあるオープンソースの選択肢です。 QRCoder を使用したことのある開発者は、QRCodeData、および PngByteQRCode のような別のレンダリング クラスを含むマルチステップ API に精通しています。 IronQR はこれを単一の QrWriter.Write() 呼び出しに簡略化します。
| 特徴 | IronQR | QRCoder |
|---|---|---|
| クロスプラットフォームレンダリング | .NET 5~10を完全にサポート | ビットマップレンダリングはWindowsのみに対応 |
| 機械学習を活用した読書 | 99.9%の検出精度 | 生成のみ、読み取り不可 |
| PDF 統合 | ネイティブスタンプサポート | 追加のライブラリが必要です |
| 商用サポート | 24時間365日のエンジニアリングサポート | コミュニティのみ |
| ロゴ埋め込み | 内蔵、自動位置決め | 手動オーバーレイが必要です |
QRCoderはWindows環境での基本的な生成には問題なく動作します。 IronQRの機械学習モデルは、あらゆる角度から優れたQRコード読み取り機能を提供します。これは、入力画像の品質を制御できないユーザー投稿画像を処理するアプリケーションにとって非常に重要です。 単一メソッドのAPIは、動作する機能をリリースするために必要なコード行数を削減します。
QRCoderから移行するチームの方は、 QRCoderからIronQRへの移行ガイドを参照して、APIのマッピングを比較してください。
QRコードにバイナリデータをエンコードするにはどうすればよいですか?
IronQRはテキストだけでなく、バイナリQRコードペイロード用のバイト配列のエンコードもサポートしています。 これは、UTF-8文字列として表現できない暗号化トークン、シリアル化されたオブジェクト、または生のバイナリ識別子に役立ちます。
using IronQr;
using IronSoftware.Drawing;
// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Encode binary data -- useful for encrypted payloads or binary identifiers
Dim binaryData As Byte() = System.Text.Encoding.UTF8.GetBytes("Binary content example")
Dim qr As QrCode = QrWriter.Write(binaryData)
qr.Save().SaveAs("binary-qr.png")
出力

バイナリエンコードを使用すると、暗号化されたペイロード、シリアル化されたオブジェクト、または任意のバイナリコンテンツをQRコード内に含めることができます。 受信側のスキャナは、バイナリペイロードを解釈する方法を知っている必要があります。これは、QRコードに人間が読めるURLではなく署名付きトークンが含まれているアクセス制御システムでよく見られることです。
バイナリデータは、同等のテキストデータよりも密度の高いQRコードを生成することに注意してください。 ペイロードのサイズが遠距離でのスキャン信頼性に懸念がある場合は、レベルHのエラー訂正を適用し、ユーザーが所有していると想定される最小サイズのカメラでテストしてください。
C#でQRコードを読み取るにはどうすればよいですか?
IronQRは書き込みと読み込みの両方に対応しています。 QrReader クラスは、画像ファイル、ビットマップ、カメラフレームを受け入れるため、バッチ処理とリアルタイムスキャンシナリオの両方に適しています。
using IronQr;
using IronSoftware.Drawing;
// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");
// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);
foreach (QrResult result in readResult.QrCodes)
{
// Access the decoded value
Console.WriteLine($"Decoded: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;
// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");
// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);
foreach (QrResult result in readResult.QrCodes)
{
// Access the decoded value
Console.WriteLine($"Decoded: {result.Value}");
}
Imports IronQr
Imports IronSoftware.Drawing
' Load an existing image containing a QR code
Dim inputImage = AnyBitmap.FromFile("qr-to-read.png")
' Read all QR codes in the image
Dim readResult As QrReadResult = QrReader.Read(inputImage)
For Each result As QrResult In readResult.QrCodes
' Access the decoded value
Console.WriteLine($"Decoded: {result.Value}")
Next
機械学習を活用した読み取りエンジンは、あらゆる向きの画像を処理し、エラー訂正の閾値までの部分的な損傷にも対応します。 実際の読み取りシナリオについては、低品質の入力、マルチコード画像、スキャンモードの設定に関するガイダンスについて、 QRコード読み取りチュートリアルを参照してください。
ASP.NET CoreアプリケーションでIronQRを使用するにはどうすればよいでしょうか?
ウェブアプリケーションでは、ユーザーアカウントへのリンク、ワンタイムログインコード、支払いリクエストなど、必要に応じてQRコードを生成する必要が頻繁に発生します。 次の例は、 ASP.NET Coreの最小限のAPIエンドポイントからQRコード画像を直接提供する方法を示しています。
using IronQr;
using IronSoftware.Drawing;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
QrCode qr = QrWriter.Write(data);
AnyBitmap image = qr.Save();
byte[] pngBytes = image.ExportBytes();
return Results.File(pngBytes, "image/png");
});
app.Run();
using IronQr;
using IronSoftware.Drawing;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
QrCode qr = QrWriter.Write(data);
AnyBitmap image = qr.Save();
byte[] pngBytes = image.ExportBytes();
return Results.File(pngBytes, "image/png");
});
app.Run();
Imports IronQr
Imports IronSoftware.Drawing
Dim builder = WebApplication.CreateBuilder(args)
Dim app = builder.Build()
' Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
' Return a QR code PNG for a given URL parameter
app.MapGet("/qr", Function(data As String)
Dim qr As QrCode = QrWriter.Write(data)
Dim image As AnyBitmap = qr.Save()
Dim pngBytes As Byte() = image.ExportBytes()
Return Results.File(pngBytes, "image/png")
End Function)
app.Run()
このパターンは、ASP.NET Core の最小限の API と標準的な MVC コントローラの両方で機能します。ExportBytes() 呼び出しは一時ファイルをディスクに書き込むことを回避するため、ファイルシステムが読み取り専用または一時的なものである可能性があるコンテナ化されたデプロイメントでは重要です。
ASP.NET Coreとの統合に関する詳細な手順については、 ASP.NET Core QRコードジェネレーターのチュートリアルを参照してください。 Blazor専用のガイドは、 Blazor QRコードジェネレーターのチュートリアルでも入手できます。
QRコード画像に余白を追加したり、サイズを変更したりするにはどうすればよいですか?
寸法と静止領域を適切に制御することは、高品質な印刷出力にとって不可欠です。 IronQRは、QrStyleOptionsを通じて両方を公開しており、それぞれについて詳細な説明が記載された専用のハウツーガイドが用意されています。
using IronQr;
using IronSoftware.Drawing;
// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
Dimensions = 600, // High resolution for print
Margins = 20 // Generous quiet zone for reliable scanning
};
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
Dimensions = 600, // High resolution for print
Margins = 20 // Generous quiet zone for reliable scanning
};
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Specify dimensions and quiet zone for print output
Dim printOptions As New QrStyleOptions With {
.Dimensions = 600, ' High resolution for print
.Margins = 20 ' Generous quiet zone for reliable scanning
}
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim printImage As AnyBitmap = qr.Save(printOptions)
printImage.SaveAs("print-ready-qr.png")
さまざまな出力メディアにおけるサイズと余白の要件に関する詳細なガイダンスについては、 QRコード画像のサイズ変更とQRコードへの余白の追加に関するハウツー記事を参照してください。 QRコード画像作成ガイドでは、ライセンス認証からファイル出力まで、画像作成の全ワークフローを網羅しています。
名刺用のQRコードの生成、 動的なQRコードジェネレーターの構築、画像からのQRコードの読み取りなど、QRコードの具体的な使用例については、それぞれのシナリオを完全なコード例とともに解説した専用記事が用意されています。
次のステップは何ですか?
IronQRは、QRコード生成を複数の手順を要するプロセスから、 NuGet簡単な統合へと変革します。 パッケージをインストールし、QrWriter.Write() を呼び出し、結果を保存します。これら 3 つの操作で、実際のシナリオの大部分をカバーできます。 エラー訂正レベル、カスタムスタイル設定、PDFへのスタンプ挿入、機械学習による読み取り機能など、すべて同じライブラリから利用できます。
IronQRのドキュメントには、完全なAPIリファレンスが記載されており、スキャンモードによるQRコードの読み取り、バッチ処理、プラットフォーム固有の導入に関する注意事項など、高度なトピックも含まれています。 IronQRのチュートリアルセクションには、 .NET MAUI、VB .NET、およびコンソールアプリケーション向けのステップバイステップガイドが含まれています。
無料トライアルを開始して、制限なくすべての機能を体験するか、24時間年中無休(平日)のエンジニアリングサポート付きのライセンスを購入して本番環境に導入してください。
よくある質問
IronQR NuGetパッケージはどのようにインストールしますか?
ターミナルでdotnet add package IronQR実行するか、Visual Studio でNuGetパッケージ マネージャー コンソールを開いてInstall-Package IronQRを実行してください。このパッケージは、 .NET Framework 4.6.2 以降、 .NET Core 2.0 以降、および.NET 5-10 をサポートしています。
IronQRを使用して C# で QR コードを生成するにはどうすればよいでしょうか?
QrWriter.Write("your-data")を呼び出してQrCodeオブジェクトを作成し、次に.Save()を呼び出してAnyBitmapを取得し、最後に.SaveAs("output.png")を呼び出してファイルを書き込みます。
IronQR はQR コードに対してどのような出力形式をサポートしていますか?
IronQRはPNG、JPEG、GIF、TIFF、BMP、SVGをサポートしています。SaveAsメソッドSaveAsファイル拡張子からフォーマットを自動的に検出します。HTTPレスポンスまたはデータベースストレージ用のバイト配列を取得するには、 ExportBytes()を使用してください。
IronQRで QR コードの色とサイズをカスタマイズするにはどうすればよいですか?
QrStyleOptionsオブジェクトを作成し、 Dimensions (ピクセル)、 Margins (ピクセル単位)、 Color 、 BackgroundColorを設定します。これをqr.Save(styleOptions)に渡します。
IronQR はどのようなエラー訂正レベルをサポートしていますか?
IronQRは、 QrErrorCorrectionLevelを介してISO/IEC 18004の4つのレベルすべてをサポートしています。L(回復率約7%)、M(約15%、デフォルト)、Q(約25%)、H(約30%)です。レベルはQrOptionsオブジェクトでQrWriter.Write()に渡してください。
IronQRと QRCoder for .NETを比較するとどうなりますか?
IronQRは、 .NET 5-10でのクロスプラットフォームレンダリング(QRCoderビットマップレンダリングはWindowsのみ)、組み込みのMLベースの読み取り機能(QRCoderは生成のみ)、ネイティブPDFスタンプ、そしてシングルメソッドAPIを提供します。QRCoderは、Windowsベースのシンプルな生成を実現する無料のオープンソースオプションです。
IronQR を使用して画像から QR コードを読み取ることはできますか?
はい。QrReader.Read QrReader.Read(AnyBitmap.FromFile("path"))を使用して画像をスキャンしてください。MLエンジンは、あらゆる向きや部分的な損傷にも対応しますreadResult.QrCodesを反復処理して、デコードされた各result.Valueにアクセスしてください。
ASP.NET Coreアプリケーションで QR コードを生成するにはどうすればよいでしょうか?
コントローラーまたは最小限のAPIハンドラー内でQrWriter.Write(data)呼び出し、 image.ExportBytes()を呼び出し、バイト配列をResults.File(pngBytes, "image/png")レスポンスとして返します。一時ファイルは必要ありません。


