Write QR Codes in C

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などの複数の形式で保存できます。

画像として保存

SaveAs メソッドは、AnyBitmap に基づき、指定されたファイルパスからファイル形式を自動的に検出します。 この例では、ファイルパスの末尾に .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の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

IronSoftware.Drawing

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

IronQRは、AnyBitmap@@--CODE-1092--@@クラスを使用しています。これは、以下の型に暗黙的にキャストされる、普遍的に互換性のあるBitmapクラスです:

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

この強力なオープンソースライブラリにより、IronQRはクロスプラットフォーム対応を実現し、.NET Standard、および .NET Framework 4.6.2+ との互換性を確保しています。 ライブラリの詳細については、IronSoftware.Drawing のウェブサイトを参照してください。

PDFにスタンプ

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

1ページにスタンプする

QRコードを作成した後、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メソッドが単一のページ番号ではなく、ページ番号のリストを受け取る点です。

: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

両方の例からの出力

alt text


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 コードと比べて低い解像度でもスキャンできる可能性が高くなります。 ユースケースに応じてテストすることができます。

alt text

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

alt text

出力からわかるように、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コードのサイズを変更するには、Dimensions オブジェクトの QrStyleOptions プロパティを設定し、それを 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

alt text

余白と境界線

余白や枠線を調整するには、QrStyleOptionsプロパティを使用できます。 このプロパティは、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

alt text

各辺の余白を変更する

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 コードがよりユニークで目を引くものになります。 Color および BackgroundColor プロパティを使用して、色を変更できます。 割り当て可能な色のリストについては、必ず IronSoftware.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");
Imports IronQr
Imports IronSoftware.Drawing

' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")

' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
    .Logo = New QrLogo(logo, 50, 50, 10)
}

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

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

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

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

alt text

ロゴを追加する

色や寸法に加えて、会社のロゴを 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");
Imports IronQr
Imports IronSoftware.Drawing

' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")

' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
    .Logo = New QrLogo(logo, 50, 50, 10)
}

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

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

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

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

alt text

ロゴをカスタマイズする

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);
    }
}
Imports IronQRCode
Imports IronSoftware.Drawing

Public Class プログラム
    Public Shared Sub Main()
        Dim styleOptions As New QrStyleOptions With {
            .Logo = New QrLogo With {
                .Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
                .Width = 50,
                .Height = 50,
                .CornerRadius = 5
            }
        }

        Dim qr As QrCode = QrWriter.CreateQrCode().Write("Customized Logo Example")

        qr.SaveAs("example-customized-logo-qr.png", styleOptions)
    End Sub
End Class
$vbLabelText   $csharpLabel

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

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

チェックサム

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

詳細なエラーメッセージ

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

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

alt text

  • IronQrFileException: IronQrExceptionのサブクラスであり、ファイルに関連する問題が発生した際にこのエラーが発生します。

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

alt text

結論

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はIronSoftware.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 ダウンロード 67,270 | バージョン: 2026.5 just released
Still Scrolling Icon

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

すぐに証拠が欲しいですか? PM > Install-Package IronQR
サンプルを実行する URL が QR コードになるのを見る。