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

QRCoderを使ったQRコード生成と.NET 6でのIronQRの比較

C#でのQRコード生成

C#アプリケーションでQRコードを生成することは、特に製品識別、チケット発行、またはURLやその他のデータを簡単に共有するアプリケーションにおいて各開発者にとって共通の要件です。 C#でQRコードを生成するためのライブラリはいくつかあります。 注目すべき選択肢にはQRCoderIronQRがあります。 ここでは、.NET 6で作業する開発者にとって関連する能力、使いやすさ、パフォーマンス、その他の要素を比較しながら、これら両方を探究します。この記事では、これらのライブラリの詳細な比較を行い、その機能、使いやすさ、ライセンスなどについて検討し、使用事例を示します。

.NET 6でIronQRと比較したQRCoderを使用してQRコードを生成する方法

  1. QRコードを生成するための新しいVisual Studioプロジェクトを作成する
  2. QRCoderとIronQRのNuGetパッケージをインストールして比較する
  3. QRCoderとIronQRを使用してQRコードを作成する
  4. QRCoderとIronQRでのカスタマイズオプション

QRCoder

QRCoderはC#で記述されたオープンソースライブラリで、任意 for .NETアプリケーションでISO/IEC 18004で定義されたQRコードを生成する機能を提供します。 他のライブラリやネットワークスタックへの依存無しで軽量かつ使いやすいライブラリです。

以下はQRCoderの主な機能と利点です。

1. 使いやすさ

C# QRCoderは開発者が少ない労力でQRコード/ QRコードテキストを生成できる単純かつ直感的なAPIを提供します。 そのシンプルさにより、すべてのスキルレベルの開発者がプロジェクトにQRコード生成を迅速に統合できます。

2. 豊富なカスタマイズオプション

QRCoderの際立った機能の一つは、特定の要件に応じてQRコードをカスタマイズできることです。 開発者は誤り訂正レベル、サイズ、色、さらにはQRコード内にロゴや画像を埋め込むことも調整できます。

3. 複数のエンコード形式

QRCoderはさまざまなエンコード形式をサポートしており、開発者がさまざまなタイプのデータをQRコードにエンコードすることができます。 プレーンテキスト、URL、連絡先情報、Wi-Fi認証情報など、QRCoderは幅広いデータ形式に対応できます。

4. 高品質な出力

C# QRCoderが生成するQRコードは高品質で、さまざまなデバイスやスキャン条件での可読性と信頼性を保証します。 この信頼性は、QRコードが物理的およびデジタルの双方のやり取りの橋渡しとして機能するアプリケーションにとって重要です。

5. オープンソースと積極的な開発

C# QRCoderはオープンソースプロジェクトであり、開発者がその開発に貢献し、継続的な改善と更新を確保しています。 この活発なコミュニティの関与は革新を促進し、技術の変化に富む状況でもライブラリが時代に合ったものとなるよう保証します。

IronQR

IronQRIron Softwareが開発し、維持している強力なC# QRコードライブラリです。 C#ソフトウェアエンジニアが.NETアプリケーションやウェブサイト内でQRコードの検出、読み取り、作成を行うことを可能にします。 以下はIronQRの主な特徴です。

QRコード生成

IronQRは非常にカスタマイズ可能なQRコード生成を実現します。 サイズ変更、マージン、ボーダー、再カラーリングなどの様々なオプションを用いてQRコードを作成できます。

using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
$vbLabelText   $csharpLabel

QRコードの読み取り

IronQRはQRコード検出のために高度な機械学習モデルを使用しています。 このモデルは正確で高速なQRコード読み取りを保証します。 IronQRはJPG、PNG、SVG、bmp、gifやtiffのようなマルチページ画像など、さまざまな画像形式からのQRコード読み取りをサポートしています。

using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
$vbLabelText   $csharpLabel

クロスプラットフォーム互換性

  1. デスクトップ: Windowsデスクトップアプリケーション(WPF & MAUI)で動作します。
  2. モバイル: XamarinとMAUIと互換性があります。
  3. ウェブ: BlazorとWebFormsをサポートします。
  4. コンソール: アプリとライブラリ環境。
  5. クラウド: Docker、Azure、およびAWS。

データのエンコード

テキスト、URL、バイト、数字など、QRコードにさまざまな種類のデータをエンコードできます。

誤り訂正

IronQRは詳細なエラーメッセージとカスタム誤り訂正オプションを提供します。

数百万人の信頼を集めるIronQRは、その信頼性と使いやすさで世界中のエンジニアに信頼されています。 IronQRを始めるには、NuGetを通してインストールできます。

ステップ1: QRコードを生成するための新しいVisual Studioプロジェクトを作成する

コードを始めるには、Visual Studio プロジェクトを作成します。 Microsoft Visual Studio 2022を開き、"新しいプロジェクトを作成"オプションを選択します。

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 1 - Open Visual Studio and click on Create a new project option

テンプレートリストからコンソールアプリケーションテンプレートを選択します

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 2 - Select the project type as Console App.

次に、プロジェクト名とソリューション名を入力します。 プロジェクトファイルの保存先を選択します

. .NET 6 でIronQRと比較した QRCoder を使用して QR コードを生成する方法: 図 3 - プロジェクト名、場所、ソリューション名を指定してプロジェクトを構成し、[次へ] をクリックします。

必要な.NETバージョンを選択します。 この記事を書いている時点では最新 for .NET 8フレームワークを使用します。

. .NET 6 でIronQRと比較して QRCoder を使用して QR コードを生成する方法: 図 4 - 最新 for .NET Frameworkバージョンを選択し、[作成] ボタンをクリックします。

作成ボタンをクリックすると、プロジェクトが作成され開発準備が整います。

ステップ2: QRCoderとIronQRのNuGetパッケージをインストールする

QRCoder NuGetパッケージは、以下に示すようにVisual Studio NuGetパッケージマネージャを使用してインストールできます。

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 5 - Install QRCoder using the Manage NuGet Package for Solution by searching QRCoder in the search bar of NuGet Package Manager, then select the project and click on the Install button.

または、NuGetパッケージマネージャコンソールから次のコマンドを使用してインストールします

dotnet add package QRCoder --version 1.4.3

QRCoder NuGetパッケージはここでNuGetウェブサイトから入手できます

. .NET 6 でIronQRと比較した QRCoder を使用して QR コードを生成する方法: 図 6 - QRCoder NuGetパッケージ

IronQRも以下のVisual Studio NuGetパッケージマネージャでインストール可能です。

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 7 - Install IronQR using the Manage NuGet Package for Solution by searching IronQR in the search bar of NuGet Package Manager, then select the project and click on the Install button.

また、NuGetパッケージマネージャコンソールから次のコマンドを使用してインストールします

dotnet add package IronQR --version 2024.4.1

. .NET 6 でIronQRと比較した QRCoder を使用して QR コードを生成する方法: 図 8 - IronQR NuGetパッケージ

ステップ3: QRCoderとIronQRを使用してQRコードを作成する

2つのライブラリでQRコードを作成するには簡単なコードを必要とします、それらを確認しましょう

QRCoder

次のコードはQRCoderを使用して最初のQRコードを生成する方法を示しています

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

コードの説明

  1. QRCodeGenerator を初期化し、CreateQrCode メソッドを呼び出して QR コード データを生成します。
  2. BitmapByteQRCode クラスを使用して、GetGraphic メソッドを使用して QR コード データからバイト配列を生成します。
  3. Image.FromStream を使用してバイト配列を画像に変換します。
  4. 生成された画像をディスクに保存します。

出力

. .NET 6 でIronQRと比較して QRCoder を使用して QR コードを生成する方法: 図 9 - 出力: QRCoder ライブラリを使用して生成された QR コード イメージ。

IronQR

次のコードはIronQRを使用してQRコードを生成する方法を示しています。

using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
$vbLabelText   $csharpLabel

既にコード量の違いが見えます。 IronQRコード生成はより少ないコードを必要とします。

コードの説明

  1. 必要なコンテンツを渡して、QrWriter.Write メソッドを使用して QR コードを作成します。
  2. Save メソッドを使用して QR コードをメモリに保存します。
  3. SaveAs を使用して QR コード イメージをディスクに保存します。

出力

出力にはIronQRの透かしが入っていますが、これはライブラリの試用版を使用しているためです。 ライセンス版を使用すればこれは除去されます。

. .NET 6 で QRCoder とIronQRを使用して QR コードを生成する方法: 図 10 - 出力: IronQRを使用して生成された QR コード画像

ステップ4: QRCoderとIronQRでのカスタマイズオプション

両方のライブラリはカスタマイズオプションをサポートしています。 利用可能なオプションのいくつかを見てみましょう

QRCoderで以下のようにQRコードの色を設定できます。

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

コードの説明

  1. QRCodeGenerator を初期化し、CreateQrCode メソッドを呼び出して QR コード データを生成します。
  2. BitmapByteQRCode クラスを使用して、前景色 (赤) と背景色 (緑) を指定して、GetGraphic メソッドで QR コード データからバイト配列を生成します。
  3. Image.FromStream を使用してバイト配列を画像に変換します。
  4. 生成された画像をディスクに保存します。

出力

. .NET 6 でIronQRと比較して QRCoder を使用して QR コードを生成する方法: 図 11 - 出力: QRCoder のカスタマイズ機能を使用して生成されたカラフルな QR コード イメージ。

IronQR QRコード生成用に以下のコードのような色を設定できます。

using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
$vbLabelText   $csharpLabel

IronQRには多くのカスタマイズオプションがあります。 上記のプログラムで、背景色、QRコード色、マージンのカスタマイズを試みました。 寸法も設定できます。

コードの説明

  1. まず、エラー訂正レベルを設定するために、QrOptions オブジェクトを作成します。
  2. QrWriter.Write メソッドを使用して QR コードを準備します。
  3. QrStyleOptions でスタイル オプションを設定します。
  4. QRコードの背景色、前景色、マージン、寸法、およびロゴすら設定します。
  5. QRコード画像をローカルディスクに保存します。

出力

. .NET 6 でIronQRと比較して QRCoder を使用して QR コードを生成する方法: 図 12 - 出力: IronQRとそのカスタマイズ機能を使用して生成されたカラフルな QR コード イメージ。

ライセンス

QRCoderはMITライセンスに基づくパッケージであり、コミュニティの助けを借りて開発されています。 このパッケージは小規模予算のプロジェクトに適しています。 ユーザーはコミュニティが問題を解決するのを待つ必要があるか、修正してGitリポジトリにプッシュしてプルリクエストの承認を得ることができます。

IronQRはライセンスが必要です。 これはIron Softwareにより支えられています。

いぬかIronQR試用版ライセンスを取得できます。 取得されたキーはここでappSettings.jsonファイルに配置する必要があります。

{
   "IronQr.License.LicenseKey": "myKey"
}

結論

C# QRCoderIronQR間での選択は、最終的にはプロジェクトの特定の要件に依存します。 無料でオープンソースのQRコード生成ライブラリが必要で、カスタマイズオプションが豊富な場合、C# QRCoderはその単純さと広範なカスタマイズオプションのために好ましい選択肢となる可能性があります。

一方、カスタマイズ可能なQRコード生成だけでなく、QRコード読み取りもサポートするエンタープライズレベルのライブラリが必要な場合、IronQRが最終的な選択となるでしょう。IronQRライブラリ、その多くの利点、およびIron Softwareによるサポート機能を備えたことで、開発者は安心してエンタープライズアプリケーションを書けます。

よくある質問

C#でQRコードを生成する方法は?

QRCoderやIronQRのようなライブラリを使用してC#でQRコードを生成できます。QRCoderはオープンソースで、幅広いカスタマイズを提供し、IronQRは高度な機能とクロスプラットフォームサポートを提供し、企業レベルのアプリケーションに理想的です。

QRCoderを.NET 6プロジェクトで使用する利点は何ですか?

QRCoderは.NET 6プロジェクトにおいて、使いやすさ、幅広いカスタマイズオプション、および複数のエンコーディングフォーマットをサポートするため、有益です。また、MITライセンスの下で無料で使用できるため、予算を意識したプロジェクトに最適です。

IronQRを使用してQRコードをどのようにカスタマイズできますか?

IronQRは、背景色、QRコードの色、余白、寸法の調整、さらにはQRコードの見た目を向上させるためのロゴの追加など、開発者がQRコードをカスタマイズできるようにします。

クロスプラットフォームアプリケーションにおけるIronQRの利点は何ですか?

IronQRはデスクトップ(WPF & MAUI)、モバイル(XamarinとMAUI)、Web(BlazorとWebForms)、コンソールアプリ、Docker、Azure、AWSのようなクラウド環境を含むクロスプラットフォームアプリケーションをサポートし、多用途な開発ニーズに理想的です。

Visual StudioでQRコード生成プロジェクトを設定するために必要な手順は何ですか?

Visual StudioでQRコード生成プロジェクトを設定するには、選択に応じてQRCoderまたはIronQRの必要なNuGetパッケージをインストールする必要があります。この記事では、プロセスをガイドするための段階的な手順とコードサンプルを提供しています。

IronQRはQRコードのエラー訂正をどのように向上させますか?

IronQRは、QRコードが損傷したり部分的に遮られていても正確に読み取れるようにする詳細なオプションを提供し、QRコードのエラー訂正を向上させます。これは、重要なアプリケーションにおいて非常に信頼性が高いものとします。

IronQRのライセンスオプションはどのようなものがありますか?

IronQRは企業レベルのプロジェクトに対し、ロバストなサポートと機能を保証する商用ライセンスが必要で、試用ライセンスを入手して評価が可能です。

シンプルなQRコードプロジェクトのためにどのライブラリを選ぶべきですか?

シンプルなQRコードプロジェクトには、その簡潔さ、使いやすさ、費用対効果からQRCoderが推奨されます。これはMITライセンスの下で動作するオープンソースライブラリです。

IronQRはさまざまな画像形式からQRコードを読み取ることができますか?

はい、IronQRは高度な機械学習モデルを使用してさまざまなプラットフォームにおける迅速で正確な読み取りを保証する形でさまざまな画像形式からQRコードを読み取れます。

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me