C#でQRコードとバーコードを生成する方法

Generate QR Codes in C# - Complete Tutorial for .NET Developers

This article was translated from English: Does it need improvement?
Translated
View the article in English

C#アプリケーションでQRコードを生成する必要がありますか? このチュートリアルでは、IronBarcodeを使用してQRコードを作成、カスタマイズ、検証する方法を詳細に示します。シンプルな一行の実装から、ロゴの埋め込みやバイナリデータのエンコーディングなどの高度な機能まであります。

在庫管理システム、イベントのチケットプラットフォーム、または非接触決済ソリューションを構築しているかどうかにかかわらず、.NETアプリケーションでプロフェッショナルなQRコード機能を実装する方法を学びます。

クイックスタート: IronBarcodeを使用した 1 行 QR コードの作成

QR コードを素早く生成する準備はできていますか? IronBarcode の QRCodeWriter API を使用して、たった 1 行のコードで QR コードを生成する方法をご紹介します。カスタマイズはオプションですが、非常に強力です。

  1. IronBarcode をNuGetパッケージマネージャでインストール

    PM > Install-Package BarCode
  2. このコード スニペットをコピーして実行します。

    var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronBarcode を使い始めましょう無料トライアル

    arrow pointer

How Do I Install a QR Code Library in C#?

このシンプルなコマンドでNuGetパッケージマネージャを使用してIronBarcodeをインストールしてください:

Install-Package BarCode

NuGetでインストール

または、IronBarcode DLLを直接ダウンロードしてプロジェクトの参照として追加してください。

必要な名前空間をインポートする

IronBarcodeのQRコード生成機能にアクセスするためにこれらの名前空間を追加してください:

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
$vbLabelText   $csharpLabel

How Can I Create a Simple QR Code in C#?

IronBarcode の CreateQrCode メソッドを使用して、1 行のコードだけで QR コードを生成します。

using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
$vbLabelText   $csharpLabel

CreateQrCode メソッドは 3 つのパラメータを受け入れます。

  • テキスト内容:エンコードするデータ(URL、テキスト、その他の文字列データをサポート)
  • サイズ:正方形のQRコードのピクセル寸法(この例では500x500)
  • エラー訂正:不都合な条件での可読性を決定(低、中、クォータイル、高)

エラー訂正レベルが高いほど、QRコードが部分的に損傷または隠れている場合でも読み取り可能であることを保証しますが、データモジュールが多くなりより密度の高いパターンが生じます。

C# でIronBarcodeを使用して生成された標準 QR コード "hello world"というテキストを含む基本QRコード、500x500ピクセルで中エラー訂正で生成されています

QRコードにロゴを追加するにはどうしたらよいですか?

QRコードにロゴを埋め込むことで、ブランド認知を高めつつスキャン可能性を保ちます。 IronBarcodeはQRコードの整合性を保持するためにロゴを自動的に位置決めし、サイズ調整します:

using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
$vbLabelText   $csharpLabel

CreateQrCodeWithLogo メソッドは、次のようにしてロゴの配置をインテリジェントに処理します。

  • QRコードの読取り可能性を維持するためにロゴを自動的にサイズ変更
  • データ破損を避けるため静止域内に位置決め
  • QRコードの色を変更してもロゴの元の色を保持

このアプローチにより、ブランド化されたQRコードがすべてのスキャニングデバイスやアプリケーションで完全に動作することを保証します。

Visual Studio ロゴが埋め込まれた QR コード Visual StudioロゴをフィーチャーしたQRコード、IronBarcodeの自動ロゴサイズ調整と位置決めを示しています

QRコードを異なる形式にエクスポートするにはどうすればいいですか?

IronBarcodeは、さまざまな使用用途に対応した複数のエクスポート形式をサポートしています。 QRコードを画像、PDF、またはHTMLファイルとしてエクスポートします:

using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
$vbLabelText   $csharpLabel

各形式は特定の目的に適しています:

カスタマイズ後のQRコードの読みやすさを検証する方法

色の変更やロゴの追加はQRコードのスキャン可能性に影響を与えることがあります。 カスタマイズされた QR コードが読み取り可能であることを確認するには、Verify() メソッドを使用します。

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
$vbLabelText   $csharpLabel

Verify() メソッドは、QR コードに対して包括的なスキャン テストを実行します。 これにより、異なるスキャニングデバイスや照明条件に対応した互換性が確保されるため、配布前に確認が行えます。

濃い青色と Visual Studio ロゴが付いた検証済みの QR コード ダークブルーでうまく検証されたQRコード、信頼できるスキャンを発揮する正しいコントラストを示す

QRコードにバイナリデータをエンコードするにはどうすればいいですか?

QRコードは、バイナリデータを効率的に格納するのに優れています。 この能力により、暗号化されたデータ転送、ファイル共有、IoTデバイスの設定など、高度なアプリケーションが可能になります:

using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
$vbLabelText   $csharpLabel

QRコードのバイナリエンコーディングは、いくつかの利点を提供します:

  • 効率性:コンパクトなバイナリ形式でデータを格納
  • 多様性:あらゆるデータタイプ(ファイル、暗号化コンテンツ、シリアライズされたオブジェクト)を扱う
  • 整合性:エンコードの問題なく正確なバイトシーケンスを保持

この機能により、IronBarcodeは基本的なQRコードライブラリとは異なり、アプリケーションにおける高度なデータ交換シナリオを可能にします。

バイナリエンコードされたデータを含むQRコード IronBarcodeの高度なエンコード機能を示すバイナリデータを格納するQRコード

How Do I Read QR Codes in C#?

IronBarcodeは柔軟なQRコード読み取り機能を提供しています。 最もシンプルなアプローチを紹介します:

using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
$vbLabelText   $csharpLabel

より複雑なシナリオでの微調整コントロールが必要な場合:

using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
$vbLabelText   $csharpLabel

これらの高度な読み取りオプションを使用すると、悪条件(悪照明、画像歪み、低品質印刷)でのQRコード検出が可能です。

QRコード開発の次は?

IronBarcodeを使ったQRコードの生成をマスターしたので、これらの高度なトピックを探求してください:

リソースをダウンロード

完全なソースコードと例にアクセスしてください:

APIドキュメント

APIリファレンスで完全な機能セットを探る:

代替案: 高度なQRアプリケーション向けIronQR

最先端のQRコード機能を必要とするプロジェクトには、IronQR-Iron SoftwareのQRコード専用ライブラリをご検討ください。機械学習による読み取り精度は99.99%で、高度な生成オプションを備えています。

.NETアプリケーションにQRコードを実装する準備ができましたか? 無料トライアルを開始またはIronBarcodeをダウンロードしてください。

よくある質問

C#でQRコードを生成するにはどうすればよいですか?

C#でIronBarcodeのQRCodeWriter.CreateQrCode()メソッドを使用してQRコードを生成できます。このメソッドを使うことで、コンテンツ、サイズ、エラー訂正レベルを指定して効率的にQRコードを作成します。

QRコードはどの画像形式にエクスポートできますか?

IronBarcodeを使用すると、QRコードをPNG、JPEG、PDF、HTMLなどの様々な形式にエクスポートできます。この目的のために、SaveAsPng()SaveAsJpeg()SaveAsPdf()SaveAsHtmlFile()などのメソッドが用意されています。

QRコードに会社のロゴをどのように追加できますか?

IronBarcodeはCreateQrCodeWithLogo()メソッドを提供しており、これにQRCodeLogoオブジェクトを渡すことで、ロゴ画像を含めることができます。ライブラリはロゴがQRコードの読み取り性を損なわないように正しくサイズや位置を調整します。

QRコードのエラー訂正とは何ですか?どのレベルを選べばよいですか?

QRコードのエラー訂正は、一部が損傷していてもスキャン可能であることを保証します。IronBarcodeは4つのレベルを提供しています:低(7%)、中(15%)、四分(25%)、高(30%)。ほとんどの用途には中レベルが適しており、厳しい環境には高レベルが理想的です。

カスタマイズされたQRコードの読み取り性をどのように確認しますか?

GeneratedBarcodeオブジェクトでVerify()メソッドを使用することで、色の変更やロゴ追加といった変更後もカスタマイズされたQRコードがスキャンできることを確認できます。

QRコードにバイナリデータをエンコードできますか?

はい、IronBarcodeのCreateQrCode()メソッドはバイト列のエンコードをサポートしており、ファイルや暗号化されたコンテンツをQRコード内に保存できます。

C#で画像からQRコードをどのように読み取りますか?

C#で画像からQRコードを読み取るには、IronBarcodeのBarcodeReader.Read()メソッドを利用します。パフォーマンスを最適化するために、BarcodeReaderOptionsBarcodeEncoding.QRCodeを指定してください。

QRコードの最大データ容量はどれくらいですか?

IronBarcodeで生成されたQRコードは、選択したエラー訂正レベルに応じて最大で2,953バイト、4,296の英数字、または7,089の数字を保持できます。

QRコードの色を変更しても読み取り可能に保つにはどうすればよいですか?

IronBarcodeのChangeBarCodeColor()メソッドを使用してQRコードの色を変更できます。色の変更がQRコードの読み取り性に影響を及ぼさないことを確認するために、常にVerify()メソッドを使用してください。

特殊なQRコードライブラリにはどのような機能がありますか?

Iron Softwareの特殊なライブラリであるIronQRは、99.99%の精度で動作する機械学習を搭載したQRコード読み取り機能や、複雑なアプリケーションに対応した頑強な生成機能などの高度な機能を含んでいます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。

準備はできましたか?
Nuget ダウンロード 2,108,094 | バージョン: 2026.3 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package BarCode
サンプルを実行する 文字列が BarCode になるのを見る。