C#でQRコードを書く

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

はじめに

IronQR を使用すると、開発者は一般的な画像形式の QR コードを作成し、背景色、余白、ロゴでカスタマイズしたり、PDF に追加したりすることもできます。 高度な使用のために、エラー修正とバージョンの制御も提供します。

この記事では、例を挙げて IronQR の主な機能を説明し、C# で QR コードを記述するために IronQR を使用する方法と、プロジェクトで IronQR を効果的に適用する方法を理解していただけるように説明します。

目次

-入力データ -テキスト、URL、数字 -バイナリとストリーム

今日あなたのプロジェクトでIronQRを無料トライアルで使用開始。

最初のステップ:
green arrow pointer

入力データ

テキスト、URL、数字

IronQR は、テキスト、URL、数字など、さまざまなデータ タイプを QR コードに変換できます。 マーケティングやコミュニケーション用の QR コード リンクやテキスト、在庫管理用の数値コードを作成する場合でも、バイナリ データやストリームを読み取り可能な QR コードにエンコードする場合でも、IronQR は必要なサポートをすべて提供します。

さらに、API は簡単です。 QrWriterクラスはいくつかのオーバーロードを提供し、さまざまな種類のデータを入力として使用できるようにすることで、複雑さを軽減し、プロセスを合理化します。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-1.cs
using IronQr;
using IronSoftware.Drawing;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/qr/";
string alphanumeric = "WATERSKU-12356";

// Create QR code
QrCode textQr = QrWriter.Write(text);
// Save QR code as a bitmap
AnyBitmap textQrImage = textQr.Save();
// Save QR code as file
textQrImage.SaveAs("textQr.png");

QrCode urlQr = QrWriter.Write(url);
AnyBitmap urlQrImage = urlQr.Save();
urlQrImage.SaveAs("urlQr.png");

QrCode alphanumericQr = QrWriter.Write(alphanumeric);
AnyBitmap alphanumericQrImage = alphanumericQr.Save();
alphanumericQrImage.SaveAs("alphanumericQr.png");
Imports IronQr
Imports IronSoftware.Drawing

Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/qr/"
Private alphanumeric As String = "WATERSKU-12356"

' Create QR code
Private textQr As QrCode = QrWriter.Write(text)
' Save QR code as a bitmap
Private textQrImage As AnyBitmap = textQr.Save()
' Save QR code as file
textQrImage.SaveAs("textQr.png")

Dim urlQr As QrCode = QrWriter.Write(url)
Dim urlQrImage As AnyBitmap = urlQr.Save()
urlQrImage.SaveAs("urlQr.png")

Dim alphanumericQr As QrCode = QrWriter.Write(alphanumeric)
Dim alphanumericQrImage As AnyBitmap = alphanumericQr.Save()
alphanumericQrImage.SaveAs("alphanumericQr.png")
$vbLabelText   $csharpLabel

バイナリとストリーム

同様に、前述と同じWriteメソッドを使用して、バイナリ データとストリームを QR コードに変換できます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-2.cs
using IronQr;
using IronSoftware.Drawing;
using System.Text;

byte[] bytes = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/");

// Create QR code
QrCode bytesQr = QrWriter.Write(bytes);

// Save QR code as a bitmap
AnyBitmap qrImage = bytesQr.Save();

// Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Text

Private bytes() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/")

' Create QR code
Private bytesQr As QrCode = QrWriter.Write(bytes)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = bytesQr.Save()

' Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png")
$vbLabelText   $csharpLabel

クラスプログラム { 静的void Main() { // QRコードライターインスタンスを作成する QrWriter writer = QrWriter.CreateQrCode();

    // バイナリデータの例
    バイト[]データ = { 0x01, 0x02, 0x03, 0x04 };

    // QRコードにバイナリデータを書き込む
    ライター.Write(データ)
          .SaveAs("binary-qr.png");

    // メモリストリームを使用した例
    (MemoryStream ストリーム = 新しい MemoryStream(データ)) を使用します
    {
        ライター.Write(ストリーム)
              .SaveAs("stream-qr.png");
    }
}

}

Writeメソッドには、バイト配列とストリームの両方を入力として受け入れるオーバーロードがあります。 ストリームの場合、バイト配列からMemoryStreamを作成し、それを QR コードに変換できます。 これは、ストリームの方がメモリ効率が高いため、ユーザーがデータ チャンクをより細かく制御する必要がある場合に役立ちます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs
using IronQr;
using IronSoftware.Drawing;
using System.IO;
using System.Text;

MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"));

// Create QR code
QrCode streamQr = QrWriter.Write(stream);

// Save QR code as a bitmap
AnyBitmap streamQrImage = streamQr.Save();

// Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Text

Private stream As New MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"))

' Create QR code
Private streamQr As QrCode = QrWriter.Write(stream)

' Save QR code as a bitmap
Private streamQrImage As AnyBitmap = streamQr.Save()

' Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png")
$vbLabelText   $csharpLabel

QRコードをエクスポートする

IronQR は柔軟性が高く、さまざまなファイル形式を必要とするさまざまなユースケースに適応できます。 SaveAsメソッドを使用して、QR コードを JPG、PNG、GIF、TIFF などの複数の形式で保存できます。

画像として保存

AnyBitmapSaveAsメソッドは、指定されたファイル パスに基づいてファイル形式を自動的に検出します。 この例では、 .pngで終わるファイル パスを指定しました。

ご注意 SaveAsメソッドを使用する場合、デフォルトの画像形式がないことに注意してください。 認識されない拡張子を入力したり、ファイル パスに誤字があったりすると、画像は間違った拡張子で保存されます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-4.cs
using IronQr;
using IronSoftware.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qr.png")
$vbLabelText   $csharpLabel

システム.描画.画像

画像を Microsoft のSystem.Drawing.Imagesオブジェクトに変換すると、 Bitmapクラスを使用して QR コードをファイル パスに保存できるようになります。 この例では、 Saveメソッドは QR コードを PNG ファイルとしてパスqrBitmap.pngに保存します。

ご注意 System.Drawing.Commonは Windows プラットフォームでのみサポートされます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-5.cs
using IronQr;
using System.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
Bitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.Save("qrBitmap.png");
Imports IronQr
Imports System.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As Bitmap = qr.Save()

' Save QR code bitmap as file
qrImage.Save("qrBitmap.png")
$vbLabelText   $csharpLabel

Iron Software.Drawing

System.Drawing.Commonにはクロスプラットフォームの互換性がないため、開発者はクロスプラットフォーム アプリケーションを保守するときに問題に遭遇する可能性があります。 IronQR はSystem.Drawing.CommonIron Software.Drawing両方を利用できます。

IronQR は、 Iron Software.DrawingAnyBitmapクラスを使用します。これは、次のように暗黙的にキャストされる、汎用的に互換性のある Bitmap クラスです。

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SixLabors.ImageSharp
  • Microsoft.Maui.Graphics.Platform.PlatformImage

この強力なオープンソースライブラリにより、QRはクロスプラットフォームのサポートと.NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard, .NET Framework 4.6.2+との互換性を実現しています。 ライブラリの詳細については、IronSoftware.Drawing のウェブサイトを参照してください。

PDFにスタンプ

IronQR を使用すると、開発者は既存の PDF ドキュメントに QR コードをスタンプできるため、他のユーザーがリンクや追加のリソースにすばやくアクセスできるようになります。 単一ページと複数ページの両方に QR コードをスタンプすることがサポートされています。

1ページにスタンプする

QR コードを作成したら、 QrCodeオブジェクトからStampToExistingPdfPageメソッドを呼び出します。 この方法では、ファイル パス、座標 (x と y)、ページ番号、および PDF がパスワードで保護されている場合はオプションのパスワードが必要です。 引数が指定されると、メソッドは QR コードをスタンプし、PDF を保存します。

ご注意この方法は PDF ページに基づいており、ページ番号は 0 ではなく 1 から始まります。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-6.cs
using IronQr;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
int page = 1;

// Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page);
Imports IronQr

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private page As Integer = 1

' Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page)
$vbLabelText   $csharpLabel

複数ページにスタンプ

上記の例と同様に、主な違いは、 StampToExistingPdfPagesメソッドが 1 つのページ番号ではなくページ番号のリストを受け取ることです。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-7.cs
using IronQr;
using System.Collections.Generic;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
pages.Add(4);

// Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages);
Imports IronQr
Imports System.Collections.Generic

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
pages.Add(4)

' Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages)
$vbLabelText   $csharpLabel

両方の例からの出力

代替テキスト


QRコードオプション

IronQR は、QR コードの動作と機能を微調整するための広範なカスタマイズ オプションを提供します。 QrOptionsクラスは、バージョン管理、エンコード タイプ、文字エンコード、エラー訂正レベルなどのいくつかのパラメーターを提供します。 これらのオプションを詳しく見てみましょう。

エンコーディング

IronQR は、作成と読み取りの両方において複数の種類の QR コードをサポートしています。 サポートされているタイプは次のとおりです。

  • QRCode : これは現在一般的に使用されている標準の QR コードです。 最大 7,089 文字の数字または 4,296 文字の英数字を保存できます。
  • MicroQRCode : 標準のQRコードの小型バージョンで、最大35文字の数字または21文字の英数字を保存できます。
  • RMQRCode : 長方形マイクロ QR コードは QR コードのコンパクト バージョンであり、アスペクト比に柔軟性があります。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-8.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change encoding to micro QR code
    Encoding = IronQr.Enum.QrEncoding.MicroQRCode,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Encoding = IronQr.Enum.QrEncoding.MicroQRCode}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

誤り訂正

IronQR は標準の QR エラー訂正を使用して、生成されるすべての QR コードが過酷な状況でもフォールト トレラントかつ信頼できるものであることを保証します。 さらに、IronQR では、エラー訂正レベルを完全に制御して、さらに微調整することができます。

QrErrorCorrectionLevelによって提供される 4 つのレベルのエラー訂正が利用可能です。

  • Highest :30%のエラー訂正
  • High :25%のエラー訂正
  • Medium :15%のエラー訂正
  • Low :7%のエラー訂正
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-9.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change error correction level to medium
    ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

エラー訂正率が高いほど、QR コードを読み取る際のフォールト トレランスが高くなり、エラー訂正率が低い QR コードと比べて低い解像度でもスキャンできる可能性が高くなります。 ユースケースに応じてテストすることができます。

代替テキスト

QRコードバージョン

より多くのデータを保存するために、QR コードのバージョンを調整できます。 上位バージョンは在庫や物流に最適ですが、下位バージョンは短い URL などの小さなデータに適しています。 QrOptionsオブジェクトのVersionプロパティを変更し、それをWriteメソッドに渡すだけで、必要に応じて QR コードが生成されます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-10.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change QR code version to 40
    Version = 40,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Version = 40}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

代替テキスト

出力からわかるように、QR コードのバージョン 40 はバージョン 5 に比べて非常に複雑で密度が高くなっています。

下位バージョンではより正確なスキャンが必要となり、高解像度のスキャナーがないとスキャンが困難になる可能性があります。 ただし、バージョンが上がると、解像度が低いカメラでもスキャンしやすくなります。 容量に基づいて QR バージョンを選択するための詳細なガイドについては、 QR バージョン リストを参照してください。

文字エンコーディング

このオプションは、QR コードのエンコード方法を決定します。 この例では、デフォルトの文字エンコードは"ISO-8859-1"ですが、"UTF-32"に変更しました。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-11.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change character encoding to UTF-32
    CharacterEncoding = "UTF-32"
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.CharacterEncoding = "UTF-32"}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

QRコードのスタイル

IronQR は、入力データの処理における使いやすさと柔軟性に加えて、QR コードをカスタマイズしてスタイル設定し、独自のものにするための多くのオプションを提供します。 QrStyleOptionsクラスは、QR コードのあらゆる側面をカスタマイズするためのさまざまなパラメータを提供します。 利用可能なオプションを調べてみましょう。

サイズ変更

QR コードのサイズを変更するには、 QrStyleOptionsオブジェクトのDimensionsプロパティを設定し、それをSaveメソッドに渡します。 デフォルトでは、QR コードは 300 ピクセルで保存されます。 この例では、QR コードを 300 ピクセルではなく 600 ピクセルで保存しました。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-12.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change the dimensions to 600px
    Dimensions = 600,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Dimensions = 600}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png")
$vbLabelText   $csharpLabel

代替テキスト

余白と境界線

余白と境界線を調整するには、 QrStyleOptionsクラスのMarginsプロパティを使用できます。 このプロパティは、QR コードのすべての辺の余白を制御します。デフォルト値は 10 ピクセルです。 この例では、余白を 20 px に設定しています。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-13.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins to 20px
    Margins = 20
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Margins = 20}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

代替テキスト

各辺の余白を変更する

IronQR では、各辺に異なる余白を指定できるため、よりきめ細かな制御が可能になります。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-14.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins
    MarginBottom = 30,
    MarginTop = 100,
    MarginRight = 40,
    MarginLeft = 20,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {
	.MarginBottom = 30,
	.MarginTop = 100,
	.MarginRight = 40,
	.MarginLeft = 20
}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

色の変更

QrStyleOptionsクラスを使用して、QR コードとその背景に色を追加できます。 色をカスタマイズすると、QR コードがよりユニークで目を引くものになります。 ColorBackgroundColorプロパティを使用して色を変更できます。 割り当て可能な色のリストについては、必ずIron Software.Drawingをインポートしてください。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

代替テキスト

ロゴを追加する

色や寸法に加えて、会社のロゴを QR コードに適用することもできます。 これにより、ユーザーは QR コードをすぐに認識し、ブランドと関連付けることができます。 Logoプロパティを使用すると、会社のロゴを追加して QR コードを簡単にカスタマイズできます。

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

代替テキスト

ロゴをカスタマイズする

QrLogoクラスを使用すると、ロゴの外観をさらにカスタマイズできます。 以下は利用可能なプロパティです:

  • Bitmap : ロゴとして使用する画像を表します。
  • Width : ロゴの幅を表します。 デフォルト値は 0 です。
  • Height : ロゴの高さを表します。 デフォルト値は 0 です。
  • CornerRadius : ロゴの角を丸める半径を表します。 デフォルトでは0に設定されており、ロゴの角は正方形になります。
using IronQRCode;
using IronSoftware.Drawing;

クラスプログラム
{
    静的void Main()
    {
        `QrStyleOptions` styleOptions = new `QrStyleOptions`
        {
            `Logo` = new `QrLogo`
            {
                `Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
                `Width` = 50,
                `Height` = 50,
                `CornerRadius` = 5
            }
        };

        `QrCode` qr = `QrWriter.CreateQrCode`()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
using IronQRCode;
using IronSoftware.Drawing;

クラスプログラム
{
    静的void Main()
    {
        `QrStyleOptions` styleOptions = new `QrStyleOptions`
        {
            `Logo` = new `QrLogo`
            {
                `Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
                `Width` = 50,
                `Height` = 50,
                `CornerRadius` = 5
            }
        };

        `QrCode` qr = `QrWriter.CreateQrCode`()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

フォールトトレランスの確認

ファイル形式とカスタマイズの幅広い柔軟性に加えて、その柔軟性はデバッグとエラー処理の側面にも拡張されます。 IronQR は、開発者が例外を処理したり、アプリケーションを検証するための単体テストを記述したりするためのさまざまなツールを提供します。

チェックサム

QR コードは破損することがありますが、IronQR にはチェックサムとデータ修正機能が組み込まれているため、QR コードは機能し続けます。 リード・ソロモン誤り訂正アルゴリズムを使用して、QR コードの耐障害性を維持します。

詳細なエラーメッセージ

IronQR は、ユーザーが問題を迅速に特定するのに役立つ詳細なエラー メッセージを提供します。 これらのメッセージには特定の例外のリストが含まれており、デバッグと問題解決がより簡単になります。 以下はライブラリで使用されるIronQrExceptionのリストです。

  • IronQrEncodingException : IronQrExceptionのサブクラス。このエラーは、QR コードの書き込みに問題がある場合に発生します。 たとえば、ユーザーが空の文字列から QR コードを作成しようとすると表示されます。

代替テキスト

  • IronQrFileException : IronQrExceptionのサブクラス。ファイル関連の問題が発生したときにこのエラーが発生します。

  • IronQrPdfPasswordExcception : IronQrExceptionのサブクラス。このエラーは、ユーザーがスタンプしようとしている PDF がパスワードで保護されており、パスワードが指定されていないか、間違ったパスワードが指定されている場合に発生します。 また、例に示すように、PDF を開くことができない場合など、その他の PDF 関連のエラーについても説明します。

代替テキスト

結論

IronQR は、.NET アプリケーション内で QR コードを生成およびカスタマイズするための包括的なメソッド セットを提供します。 強力な機能により、開発者はさまざまなデータ エンコーディング、視覚スタイル、エラー訂正レベルを備えた QR コードを簡単に作成できます。 このライブラリは、多様な出力形式をサポートし、既存のドキュメントにシームレスに統合できるため、あらゆるQRコードプロジェクトに対応できる汎用性の高いツールです。 基本的な QR コードが必要な場合でも、高度なブランド ソリューションが必要な場合でも、IronQR はニーズを効率的に満たす柔軟性と機能を提供します。

詳細については、 IronQR のドキュメントを参照し、無料トライアルで試用を開始し、ライセンス オプションを確認して、ニーズに最適なプランを見つけてください。

よくある質問

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

IronQRで利用可能なQrWriterクラスを使用することで、C#でQRコードを生成できます。このクラスは、データをQRコードに書き込み、さまざまな画像形式で保存することができます。データをエンコードするためには単にWriteメソッドを使用し、QRコードを出力するためにはSaveAsを使用します。

QRコードにどのようなカスタマイズを適用できますか?

IronQRは、色の変更、ロゴの追加、サイズ変更、余白の調整によりQRコードをカスタマイズすることを可能にします。これらのカスタマイズを適用するためにはQrStyleOptionsクラスを使用します。

C#を使用してQRコードをPDFに埋め込むことはできますか?

はい、StampToExistingPdfPageまたはStampToExistingPdfPagesメソッドを使用することで、IronQRを使用してQRコードをPDFに埋め込むことができます。これにより、QRコードが表示される場所やページを指定することができます。

QRコードを作成するときにエラーをどのように処理できますか?

IronQRには強力なエラーハンドリング機能があり、IronQrEncodingExceptionIronQrFileExceptionIronQrPdfPasswordExceptionなどのエラーメッセージを提供してデバッグと問題解決をサポートします。

QRコードをどのフォーマットでエクスポートできますか?

IronQRを使用することで、JPG、PNG、GIF、TIFFなどのさまざまな形式でQRコードをエクスポートできます。SaveAsメソッドを使用して、QRコードの出力に必要なフォーマットを指定します。

このライブラリはクロスプラットフォーム開発をサポートしていますか?

はい、IronQRはIron Software.Drawingライブラリを通じてクロスプラットフォームの開発をサポートしており、異なる.NETバージョンやプラットフォームと互換性があります。

ブランディングのためにQRコードにロゴを追加することは可能ですか?

IronQRを使用して、QrStyleOptionsクラスのLogoプロパティを設定することにより、カスタマイズされたロゴ外観を持つブランディングされたQRコードを追加することができます。

QRコードにおけるエラー修正の目的は何ですか?

IronQRがサポートするQRコードのエラー修正は、一部が破損してもQRコードが読み取り可能であることを保証します。この機能は、異なるユースケースに合わせた4つの修正レベルを提供します:最高、高、中、低。

どのようなデータ型をQRコードにエンコードできますか?

IronQRはQRコードにさまざまなデータ型をエンコードできます。これには、テキスト、URL、数字、バイナリデータ、ストリームが含まれ、表現できるデータの柔軟性を提供します。

C#でURLを使用してQRコードを作成するにはどうすればよいですか?

C#でURLを使用してQRコードを作成するには、IronQRのQrWriterクラスを使用します。URLをエンコードするにはWriteメソッドを利用し、QRコードを画像として保存するにはSaveAsを使用します。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 54,049 | バージョン: 2025.12 リリース