使用IRONQR

如何在 .NET 6 中使用 QRCoder 生成 QR 码与 IronQR 进行比较

发布 2024年四月29日
分享:

在 C&num 中生成 QR 码;

在 C# 应用程序中创建 QR 代码是开发人员的常见需求,尤其是涉及产品识别、票务或轻松共享 URL 和其他数据的应用程序。有几个库可用来在 C# 中生成二维码。两个值得注意的选项是 QRCoderIronQR.在本文中,我们将对这两个库进行详细比较,检查它们的功能、易用性、许可证等,并通过代码示例来说明它们的用法。

如何在 .NET 6 中使用 QRCoder 生成与 IronQR 相比的 QR 码

1.创建一个新的 Visual Studio 项目来生成 QR 代码

2.安装 QRCoder 和 IronQR NuGet 软件包进行比较

3.使用 QRCoder 和 IronQR 创建 QR 代码

4.使用 QRCoder 和 IronQR 的定制选项

QRCoder

QRCoder 是一个用 C# 和 QR 码实现编写的开源库,可让您在任何 .NET 应用程序中生成 ISO/IEC 18004 所定义的 QR 码。它是一个轻量级且易于使用的库,不依赖于其他库或网络堆栈。

以下是 QRCoder 的主要功能和优点:

1.易于使用

C# QRCoder 它提供了一个简单直观的应用程序接口,使开发人员只需花最少的精力就能轻松生成 QR 代码/QR 代码文本。它的简易性使各种技能水平的开发人员都能快速将二维码生成功能集成到他们的项目中。

2.广泛的定制选项

QRCoder 的突出特点之一是能够根据特定要求定制 QR 代码。开发人员可以调整纠错级别、大小、颜色等参数,甚至在 QR 代码中嵌入徽标或图像。

3.多种编码格式

QRCoder 支持多种编码格式,使开发人员能够将不同类型的数据编码到 QR 码中。无论是纯文本、URL、联系信息还是 Wi-Fi 证书,QRCoder 都能处理各种数据格式。

4.高质量输出

C# QRCoder 生成的 QR 码质量很高,可确保在不同设备和扫描条件下的可读性和可靠性。对于将 QR 码作为物理和数字互动桥梁的应用来说,这种可靠性至关重要。

5.开源和积极开发

C# QRCoder 是一个开源项目,允许开发人员为其开发做出贡献,并确保持续改进和更新。这种积极的社区参与促进了创新,并确保该库在不断发展的技术领域中始终保持相关性。

IronQR

IronQR 是一个功能强大的 C# QR 代码库,由 铁软件.它允许 C# 软件工程师在 .NET 应用程序和网站中检测、读取和创建二维码。以下是 IronQR 的一些主要功能:

QR 码生成

IronQR 可高度定制 生成 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")
VB   C#

QR 码读取

IronQR 使用先进的机器学习模型进行 QR 码检测。该模型可确保准确、快速地读取 QR 码。IronQR 支持 阅读二维码 可从各种图像格式,包括 JPG、PNG、SVG、bmp 以及 gif 和 tiff 等多页图像中获取。

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)
VB   C#

跨平台兼容性

1.桌面:可与 Windows 桌面应用程序配合使用 (WPF 和 MAUI).

2.移动版与 Xamarin 和 MAUI 兼容。

3.网络版支持 Blazor 和 WebForms。

4.控制台应用程序和库环境

5.云:Docker、Azure 和 AWS。

编码数据

您可以在二维码中编码各种类型的数据,包括文本、URL、字节和数字。

错误纠正

IronQR 提供详细的错误信息和自定义纠错选项。

IronQR 以其可靠性和易用性赢得了数百万人的信赖。要开始使用 IronQR,您可以通过以下方式进行安装 NuGet.

步骤 1:创建一个新的 Visual Studio 项目来生成 QR 代码

要开始使用代码,让我们创建一个 Visual Studio 项目。打开 Microsoft Visual Studio 2022,选择 "创建新项目 "选项。

如何在 .NET 6 中使用 QRCoder 生成 QR 码(与 IronQR 相比):图 1 - 打开 Visual Studio 并单击 "Create a new project" 选项

从模板列表中选择控制台应用程序模板

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 2 - 选择项目类型为 "Console App"。

然后提供项目名称和解决方案名称。选择存储项目文件的路径

如何在 .NET 6 中使用 QRCoder 生成与 IronQR 相比的 QR 代码:图 3 - 通过指定项目名称、位置和解决方案名称来配置您的项目,然后单击 下一步。

选择所需的 .NET 版本。在撰写本文时,我将使用最新的 .NET 8 框架。

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 4 - 选择最新的 .NET Framework 版本,然后单击创建按钮。

点击 "创建 "按钮后,项目就创建完成,可以进行开发了。

第 2 步:安装 QRCoder 和 IronQR NuGet 软件包

安装 QRCoder 如下图所示,可以使用 Visual Studio NuGet 软件包管理器安装 NuGet 软件包。

如何在.NET 6中使用QRCoder生成与IronQR相比的QR码:图5--在NuGet包管理器的搜索栏中搜索"QRCoder",使用管理解决方案的NuGet包安装QRCoder,然后选择项目并点击安装按钮。

或使用以下命令从 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
VB   C#

QRCoder NuGet 软件包可从 NuGet 网站获取,点击此处

如何在 .NET 6 中使用 QRCoder 生成 QR 码(与 IronQR 相比):图 6 - QRCoder NuGet 包

"(《世界人权宣言》) IronQR 也可以使用 Visual Studio NuGet 软件包管理器进行类似安装,如下图所示。

如何在.NET 6中使用QRCoder生成QR码与IronQR相比:图7--使用Manage NuGet Package for Solution安装IronQR,方法是在NuGet Package Manager的搜索栏中搜索"IronQR",然后选择项目并点击安装按钮。

也可从 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
VB   C#

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 8 - IronQR NuGet 包

第 3 步:使用 QRCoder 和 IronQR 创建 QR 代码

在这两个库中创建 QR 代码只需简单的代码,让我们来看看它们吧

QRCoder

以下代码展示了如何使用 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
VB   C#

代码解释

1.我们创建 QRCodeGenerator 并调用 CreateQrCode 方法生成二维码图形

2.然后,我们使用 QRCoder.BitmapByteQRCode 方法从 GetGraphic 方法中获取字节数组

3.然后使用 Image.FromStream 方法将字节流保存为图像

4.输出的二维码如下所示

输出

如何在 .NET 6 中使用 QRCoder 生成 QR 码(与 IronQR 相比):图 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");
        }
    }
}
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
VB   C#

您已经可以看到代码量的差异。IronQR 代码生成所需的代码量更少。

代码解释

1.我们使用 QrWriter.Write 创建二维码() 方法并传递内容。

2.然后使用 Save() 方法。

3.最后,我们使用 SaveAs 保存图像() 方法;

输出

由于我使用的是试用版程序库,因此输出结果带有 IronQR 水印。使用授权版本后,水印将被去除。

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 10 - 输出:使用 IronQR 生成的 QR 码图像

第 4 步:使用 QRCoder 和 IronQR 的自定义选项

这两个库都支持自定义选项。让我们来看看一些可用的选项

我们可以在 QRCoder 中设置二维码颜色,如下所示:

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
VB   C#

代码解释

1.我们创建 QRCodeGenerator 并调用 CreateQrCode 方法生成二维码图形

2.然后我们使用 QRCoder.BitmapByteQRCode() 方法从 GetGraphic 方法中获取字节数组

3.在 GetGraphic 方法中,我们可以设置背景和线条颜色。我们使用红色 [255,0,0] R、G、B 为线条颜色,绿色为线条颜色 [0,255,0] 为背景。

4.然后,我们使用 Image.FromStream 将字节流保存为图像。() 方法

5.输出的二维码如下所示

输出

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 11 - 输出:使用 QRCoder's 定制功能生成的彩色 QR 码图像。

我们可以为 IronQR 二维码生成设置颜色,如下所示:

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
}
VB   C#

使用 IronQR 有许多好处 定制选项.在上述程序中,我们尝试自定义背景颜色、二维码颜色和边距。我们还可以设置尺寸。

代码解释

1.首先,我们创建一个选项对象来设置误差修正级别

2.然后用 QrWriter.Write 准备二维码() 方法

3.然后使用 QrStyleOptions 设置样式选项

4.我们为二维码设置背景色、前景色、边距、尺寸和徽标

5.然后将二维码图像保存到本地磁盘。

输出

如何在 .NET 6 中使用 QRCoder 生成 QR 码:图 12 - 输出:使用 IronQR 及其定制功能生成的彩色 QR 码图像。

Licensing

QRCoder 是基于 MIT 许可的软件包,由社区帮助开发。该软件包适用于小预算项目。用户需要等待社区解决问题,也可以在拉取请求获得批准后修复代码并推送到 Git 仓库。

IronQR 应用中使用。它得到了以下机构的支持 铁软件.

IronQR 可以获取。获得的密钥需要放在此处的 appSettings.json 文件中:

{
   "IronQR.License.LicenseKey":"myKey"
}
{
   "IronQR.License.LicenseKey":"myKey"
}
If True Then
   "IronQR.License.LicenseKey":"myKey"
End If
VB   C#

结论

选择 C# QRCoderIronQR 这最终取决于您项目的具体要求。如果您需要一个免费的开源 QR 代码生成库,并有大量自定义选项,那么 C# QRCoder 可能是您的首选,因为它简单易用,而且有大量自定义选项。

如果您需要一个企业级库,不仅支持 QR 代码生成和自定义选项,还支持 QR 代码读取,那么 IronQR 将是最终的选择。因此,归根结底,IronQR 库的诸多优势和支持功能来自于 铁软件因此,开发人员可以轻松、放心地编写企业应用程序。

< 前一页
如何在 C# 中创建一个二维码生成器应用程序
下一步 >
如何在VB .NET中生成QR码

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 14,760 查看许可证 >