透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
C#(シーシャープ)アプリケーションでQRコードを作成することは、開発者にとって一般的な要件であり、特に製品の識別、チケットの発券、URLやその他のデータの共有を簡単に行うアプリケーションに適しています。 C#(シーシャープ)でQRコードを生成するためのライブラリはいくつかあります。 2つの注目すべきオプションは、QRCoderとIronQRです。 この記事では、.NET 6で作業する開発者に関連する機能、使いやすさ、パフォーマンス、その他の要素を比較しながら、これらのライブラリの詳細な比較について掘り下げていきます。
QRコードを生成するための新しいVisual Studioプロジェクトを作成する
QRCoderとIronQRのNuGetパッケージをインストールして比較する。
QRCoderとIronQRを使ってQRコードを作成する
QRCoderは、C#で記述されたオープンソースのライブラリで、QRコードの実装を行い、ISO/IEC 18004で定義されたQRコードを任意の.NETアプリケーションで生成することができます。 他のライブラリやネットワークスタックに依存しない、軽量で使いやすいライブラリだ。
QRCoderの主な特徴と利点は以下の通りです:
C# QRCoder は、シンプルで直感的なAPIを提供しており、開発者が最小限の労力でQRコード/ QRコードテキストを生成することを容易にします。 そのシンプルさにより、あらゆるスキルレベルの開発者がQRコード生成をプロジェクトに素早く統合することができます。
QRCoderの際立った特徴の1つは、特定の要件に応じてQRコードをカスタマイズできることです。 開発者は、エラー訂正レベル、サイズ、色などのパラメータを調整し、QRコード内にロゴや画像を埋め込むこともできる。
QRCoderはさまざまなエンコード形式をサポートしており、開発者はさまざまなタイプのデータをQRコードにエンコードすることができます。 プレーンテキスト、URL、連絡先情報、Wi-Fi認証情報など、QRCoderは幅広いデータ形式を扱うことができます。
C# QRCoderが生成するQRコードは高品質で、さまざまなデバイスやスキャン条件下での読み取り可能性と信頼性を保証します。 この信頼性は、QRコードが物理的インタラクションとデジタルインタラクションの橋渡しをするアプリケーションにとって極めて重要である。
C# (シーシャープ) QRCoderはオープンソースプロジェクトであり、開発者が開発に貢献し、継続的な改善とアップデートを保証します。 このような積極的なコミュニティへの参加は、技術革新を促進し、図書館が常に進化し続けるテクノロジーの中で適切な存在であり続けることを保証する。
IronQR は、Iron Software によって開発および維持されている強力な C# QR コード ライブラリです。 C#のソフトウェアエンジニアは、.NETアプリケーションやWebサイトでQRコード(シーシャープ)を検出、読み取り、作成することができます。 IronQRの主な特徴は以下の通りです:
IronQRは、QRコードの生成を高度にカスタマイズ可能にします。 サイズ変更、余白、ボーダー、再カラーリングなど、さまざまなオプションを使ってQRコードを作成できます。
using IronQr;
using IronSoftware.Drawing;
// 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;
// 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");
Imports IronQr
Imports IronSoftware.Drawing
' Prepare a QR Code object
Private theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Private myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
IronQRはQRコード検出に高度な機械学習モデルを使用しています。 このモデルは、正確で高速なQRコード読み取りを保証します。 IronQRは、JPG、PNG、SVG、bmp、gifやtiffのようなマルチページ画像を含むさまざまな画像形式からQRコードを読み取ることをサポートします。
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// 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 an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// 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 an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Read QR code
Private inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Private imageInput As New QrImageInput(inputBmp)
' Create the QR Reader object
Private reader As New QrReader()
' Read the Input an get all embedded QR Codes
Private results As IEnumerable(Of QrResult) = reader.Read(imageInput)
デスクトップ: Windowsデスクトップアプリケーション(WPF & MAUI)で動作します。
モバイル:XamarinとMAUIに対応。
ウェブ:BlazorとWebFormsをサポート。
コンソール:アプリとライブラリ環境。
QRコードには、テキスト、URL、バイト、数字など、さまざまな種類のデータをエンコードできます。
IronQRは、詳細なエラーメッセージとカスタムエラー修正オプションを提供します。
数百万人に信頼されているIronQRは、その信頼性と使いやすさで世界中のエンジニアに信頼されています。 IronQRの使用を開始するには、NuGetを通じてインストールすることができます。
コードを始めるために、Visual Studio プロジェクトを作成しましょう。 Microsoft Visual Studio 2022を開き、"Create new project "オプションを選択する。
テンプレートリストからコンソールアプリケーションテンプレートを選択します。
次に、プロジェクト名とソリューション名を入力する。 プロジェクトファイルを保存するパスを選択する
必要な .NET バージョンを選択してください。 この記事を書いている時点では、最新の.NET 8フレームワークを使うことにする。
作成ボタンをクリックすると、プロジェクトが作成され、開発の準備が整います。
QRCoder NuGet パッケージは、以下のように Visual Studio の NuGet パッケージ マネージャーを使用してインストールすることができます。
または、以下のコマンドを使用してNuGetパッケージ・マネージャー・コンソールからインストールする。
dotnet add package QRCoder --version 1.4.3
dotnet add package QRCoder --version 1.4.3
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package QRCoder --version 1.4.3
QRCoder NuGetパッケージは、NuGetウェブサイトから入手可能です。
IronQR は、以下に示す Visual Studio NuGet パッケージ マネージャーを使用して同様にインストールすることもできます。
また、NuGetパッケージ・マネージャー・コンソールから、以下のコマンドを使用する。
dotnet add package IronQR --version 2024.4.1
dotnet add package IronQR --version 2024.4.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronQR --version 2024.4.1
2つのライブラリでQRコードを作成するには、簡単なコードが必要です。
次のコードは、QRCoder を使用して最初の QR コードを生成する方法を示しています。
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20)
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
QRCodeGeneratorを作成し、CreateQrCodeメソッドを呼び出してQRコード・グラフィックを生成する。
次に、QRCoder.BitmapByteQRCodeメソッドを使用して、GetGraphicメソッドからバイト配列を取得します。
次に、Image.FromStreamメソッドを使用してバイトストリームを画像として保存します。
次のコードは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");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Namespace QrCodeWithIronQR
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End Class
End Namespace
すでにお分かりのように、コードの量が違う。 IronQRのコード生成はより少ないコードで済む。
私たちは、QrWriter.Write() メソッドを使用し、コンテンツを渡すことで QR コードを作成します。
次に、Save() メソッドを使用して QR コードをメモリに保存します。
試用版のライブラリを使用しているため、出力にはIronQRの透かしが入っています。 ライセンス版では、これは取り除かれる。
どちらのライブラリもカスタマイズ・オプションをサポートしている。 いくつかのオプションを見てみよう。
以下のようにQRCoderでQRコードの色を設定できます。
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20, (255,0,0), (0,255, 0)) ' can also use html hex color notation
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
QRCodeGeneratorを作成し、CreateQrCodeメソッドを呼び出してQRコード・グラフィックを生成する。
次に、QRCoder.BitmapByteQRCode() メソッドを使用して、GetGraphic メソッドからバイト配列を取得します。
GetGraphicでは、背景色と線の色を設定できる。 ラインの色には赤 [255,0,0] の R,G,B カラーを使用し、背景には緑 [0,255,0] を使用しました。
次に、Image.FromStream() メソッドを使用してバイトストリームを画像として保存します。
次のコードのようにIronQR QRコード生成の色を設定できます。
using IronQr;
using IronSoftware.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;
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");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
namespace QrCodeWithIronQR Public Class Program
Public Shared Sub Main()
' Set options
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium, 20)
' Create QR
Dim myQr As QrCode = QrWriter.Write("IronQR Generation Demo 1", options)
' Style options
Dim logoBmp As New AnyBitmap("logo.png")
Dim style As New QrStyleOptions With {
.BackgroundColor = Color.Aqua,
.Dimensions = 300,
.Margins = 10,
.Color = Color.Red,
.Logo = New QrLogo With {
.Bitmap = logoBmp,
.Width = 100,
.Height = 100,
.CornerRadius = 2
}
}
' Save QR Code
Dim qrImage As AnyBitmap = myQr.Save(style)
' Save QR Code to local disk
qrImage.SaveAs("advancedQr.png")
End Sub
End Class
}
IronQRでは、多くのカスタマイズオプションがあります。 上記のプログラムでは、背景色、QRコードの色、余白のカスタマイズを試みました。 寸法を設定することもできる。
まず、エラー訂正レベルを設定するオプション・オブジェクトを作成します。
次に、QrWriter.Write() メソッドを使用してQRコードを準備します
次に、QrStyleOptionsでスタイル・オプションを設定します。
QRコードに背景色、前景色、余白、寸法、ロゴを設定します。
QRCoder はMITライセンスに基づくパッケージであり、コミュニティの助けを借りて開発されています。 このパッケージは小予算のプロジェクトに適している。 ユーザーは、コミュニティが問題を解決するのを待つか、プルリクエストが承認されたコードを修正してGitリポジトリにプッシュする必要がある。
IronQRはアプリケーションで使用されます。 Iron Softwareからの支援があります。
IronQR を取得できます。 取得したキーは、ここでappSettings.jsonファイルに配置する必要がある:
{
"IronQR.License.LicenseKey":"myKey"
}
{
"IronQR.License.LicenseKey":"myKey"
}
If True Then
"IronQR.License.LicenseKey":"myKey"
End If
C# QRCoder と IronQR の選択は、最終的にプロジェクトの具体的な要件に依存します。 多くのカスタマイズオプションがあるフリーでオープンソースのQRコード生成ライブラリが必要な場合は、そのシンプルさと豊富なカスタマイズオプションのために、C# QRCoderが好ましい選択かもしれません。
カスタマイズオプションを備えたQRコードの生成だけでなく、QRコードの読み取りもサポートするエンタープライズレベルのライブラリが必要な場合は、IronQRが最適な選択肢です。最終的に、IronQRライブラリとその多くの利点、およびIron Softwareからのサポート機能を使用することで、開発者は簡単に安心してエンタープライズアプリケーションを作成できます。