跳至页脚内容
使用 IRONQR
如何使用IronQR读取QR码

C# QR 代码阅读器(逐步教程)

按需生成新的和多样化的条形码是许多商业 .NET 应用程序的关键方面。 与其他第三方选项相比,IronBarcode 库使这一过程非常快速、方便和简单。 本教程旨在说明这是如何做到的。

1. 创建新项目

打开 Visual Studio 并转到文件菜单。 选择新项目,然后选择控制台应用程序/Windows 窗体/WPF 应用程序。 条形码也可以在所有类型的应用程序中使用。 此外,您还可以与 Webform/MVC/MVC Core 等应用程序一起使用它们。

C# 二维码阅读器(分步教程),图1:配置您的新项目 配置您的新项目

在 Visual Studio 的适当文本框中输入项目名称并选择文件路径。 接下来,单击创建按钮,并选择所需的 .NET Framework。 项目现在将为所选应用程序生成结构。 如果您选择了控制台应用程序,它现在将打开program.cs文件,您可以在其中输入代码并构建/运行应用程序。

2. 安装 IronBarcode NuGet 包

现在转到 Visual Studio 的解决方案资源管理器并左键单击项目。 从弹出菜单中选择菜单中的NuGet 包管理器,并搜索"Barcode"作为关键词。 在 NuGet 包对话框中选择第一个结果,然后单击安装选项。

C# 二维码阅读器(分步教程),图2:从 NuGet 包管理器安装 IronBarcode 库 从 NuGet 包管理器安装 IronBarcode 库

或者,在 Visual Studio 中执行以下说明:转到工具 > NuGet 包管理器 > 包管理器控制台

打开包管理器控制台选项卡。 输入以下行:

Install-Package IronQR

C# 二维码阅读器(分步教程),图3:NuGet 包管理器控制台 NuGet 包管理器控制台

访问以下链接以了解条形码阅读器 SDK 的最新版本。

https://www.nuget.org/packages/Barcode

接下来,该包将下载所有 DLL 文件,并在当前项目中添加 DLL 文件的引用作为 .NET 项目引用。

Visual Studio 项目现在已准备好与代码一起使用。

3. 添加引用

如下面所示,将IronBarCode引用添加到代码中,允许在 .NET Core 中使用 IronBarcode 库中可用的功能。 要了解有关条形码阅读器控件、阅读二维码、组件、二维码类型支持以及条形码阅读器 SDK 兼容性的更多信息,请参考此链接:https://ironsoftware.com/csharp/barcode/

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

4. 创建条形码实例

BarcodeReader是用于读取/创建二维码的静态类。 使用静态类BarcodeReader无需创建任何对象实例。 条形码阅读器控件提供使用单一功能ReadReadAsync扫描15种条形码的能力。 IronBarcode 库能够从各种来源读取二维码/条形码:

  • 字符串
  • 图像
  • Bitmap

5. 使用String读取条形码

使用 .NET 条形码阅读器库可以轻松读取二维码和条形码图像。 Read方法是一个静态函数,将扫描二维码图像并将二维码和条形码解码为文本。 它接受各种类型的图像文件,如位图、PNG文件、JPEG、TIFF等。

Read函数从图像中提取二维码/条形码数据,并将结果检索为对象BarcodeResult。 如果代码未识别图像文件,它将返回null。

BarcodeResult具有以下值:

  • BarcodeType
  • Value
  • 文本
  • 二进制值

BarcodeType是一种枚举数据类型,它返回给定输入图像的条形码类型。 IronBarcode 支持二十二种条形码类型。 它将返回应用于给定输入图像的条形码类型。

Value 和 text 也是BarcodeResult上可用的对象类型值。 Value 和 text都是字符串数据类型。它返回条形码的字符串值。 Read方法将读取二维码和条形码,并将给定条形码图像的字符串值生成至值/文本中。 二进制值是字节数据类型,并返回给定图像的字节。 这是可用于任何 .NET Windows 窗体或 .NET 标准应用程序的快速响应代码。

// Read a barcode from an image file
BarcodeResult result = BarcodeReader.Read("test.bmp");
// Check if the result is not null and matches the expected text
if (result != null && result.Text == "https://ironsoftware.com/csharp/barcode")
{
    System.Console.WriteLine("Success");
}
// Read a barcode from an image file
BarcodeResult result = BarcodeReader.Read("test.bmp");
// Check if the result is not null and matches the expected text
if (result != null && result.Text == "https://ironsoftware.com/csharp/barcode")
{
    System.Console.WriteLine("Success");
}
' Read a barcode from an image file
Dim result As BarcodeResult = BarcodeReader.Read("test.bmp")
' Check if the result is not null and matches the expected text
If result IsNot Nothing AndAlso result.Text = "https://ironsoftware.com/csharp/barcode" Then
	System.Console.WriteLine("Success")
End If
$vbLabelText   $csharpLabel

以上代码展示了如何使用 .NET 条形码阅读器库读取二维码和条形码。 该代码使用简单,可以将系统中的文件映射到 Bitmap 对象。 它还会解码图像中的二维码/条形码,并在对象中显示结果。 以下是代码中提供的二维码/条形码,用于扫描编码的数据。

C# 二维码阅读器(分步教程),图4:条形码输入 条形码输入

6. 从 TIFF 图像中读取多个条形码

.NET 条形码阅读器控件允许使用相同的Read方法从图像文件中读取多个二维码/条形码,使用起来非常简单。

下面是用于从图像中读取多个二维码的示例代码:

// Configure barcode reader options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    ExpectMultipleBarcodes = true,
};

// Read multiple barcodes from a TIFF image
BarcodeResult[] multiFrameResults = BarcodeReader.Read("Multiframe.tiff", options);
// Configure barcode reader options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    ExpectMultipleBarcodes = true,
};

// Read multiple barcodes from a TIFF image
BarcodeResult[] multiFrameResults = BarcodeReader.Read("Multiframe.tiff", options);
' Configure barcode reader options
Dim options As New BarcodeReaderOptions() With {
	.ExpectBarcodeTypes = BarcodeEncoding.Code128,
	.ExpectMultipleBarcodes = True
}

' Read multiple barcodes from a TIFF image
Dim multiFrameResults() As BarcodeResult = BarcodeReader.Read("Multiframe.tiff", options)
$vbLabelText   $csharpLabel

在上面的代码中,从 TIFF 二维码图像中提取二维码。 .NET 条形码阅读器从系统中的图像扫描二维码,并以数组形式返回结果。 在上面的代码中,仅扫描了Code128条形码类型。 如果图像上存在其他条形码,它们将被忽略。

7. 从 PDF 中读取二维码和条形码

本节演示如何从 PDF 文档中读取二维码。 二维码库将扫描所有已提供的页和文件中的所有二维码,或者专注于一种特定类型的条形码。 使用 IronBarcode 时,该库提供标准条形码阅读器所需的所有相关 DLL,因此不需要包含其他 DLL 作为 .NET 项目引用。

以下是可用于从 PDF 中读取二维码/条形码的示例代码。

// Read barcodes from each page of a PDF document
PagedBarcodeResult[] pagedResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Process results for each page
foreach (PagedBarcodeResult pageRes in pagedResults)
{
    int pageNumber = pageRes.PageNumber;
    string value = pageRes.Value;
    Bitmap img = pageRes.BarcodeImage;
    BarcodeEncoding barcodeType = pageRes.BarcodeType;
    byte[] binary = pageRes.BinaryValue;
    Console.WriteLine(pageRes.Value);
}
// Read barcodes from each page of a PDF document
PagedBarcodeResult[] pagedResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Process results for each page
foreach (PagedBarcodeResult pageRes in pagedResults)
{
    int pageNumber = pageRes.PageNumber;
    string value = pageRes.Value;
    Bitmap img = pageRes.BarcodeImage;
    BarcodeEncoding barcodeType = pageRes.BarcodeType;
    byte[] binary = pageRes.BinaryValue;
    Console.WriteLine(pageRes.Value);
}
' Read barcodes from each page of a PDF document
Dim pagedResults() As PagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Process results for each page
For Each pageRes As PagedBarcodeResult In pagedResults
	Dim pageNumber As Integer = pageRes.PageNumber
	Dim value As String = pageRes.Value
	Dim img As Bitmap = pageRes.BarcodeImage
	Dim barcodeType As BarcodeEncoding = pageRes.BarcodeType
	Dim binary() As Byte = pageRes.BinaryValue
	Console.WriteLine(pageRes.Value)
Next pageRes
$vbLabelText   $csharpLabel

以上是从 PDF 文件读取二维码/条形码的示例代码,使用一个简单的 ReadPdf 方法。 它还可以为每个条形码及其类型提供详细的结果。

结论

.NET 条形码阅读器提供了一种简单方法,以简单步骤读取二维码或解码/创建二维码和条形码。 IronBarcode DLL 可用于多种环境,如 .NET Windows 窗体应用程序、移动应用程序、Web 应用程序、MAUIBlazor,使用 .NET Framework 或 .NET Standard。 此外,IronBarcode提供了一系列广泛的定制选项来提高条码读取速度,比如裁剪区域多线程,以及ML模型的准确性。 IronBarcode 提供免费试用密钥,或者您可以目前以买两件产品的价格购买 Iron Software 的五件产品。

访问许可页面以获取更多信息。

您还可以下载压缩文件项目

常见问题解答

我如何在C#中读取QR码?

您可以通过安装IronBarcode NuGet包在Visual Studio中使用IronQR库来读取QR码,添加必要的引用,并利用BarcodeReader类。

在Visual Studio中启动QR码阅读项目的步骤是什么?

要在Visual Studio中启动QR码阅读项目,请创建一个新项目,安装IronBarcode NuGet包,添加所需的引用,并使用BarcodeReader类从各种来源读取QR码。

我可以从单个图像中读取多个QR码吗?

可以,IronQR库允许您使用配置为多代码的Read方法从单个图像中读取多个QR码。

我如何从PDF文档中提取QR码?

您可以使用IronQR库中的ReadPdf方法扫描PDF文档中的QR码,并从每页获取详细结果。

在C#中可用于QR码阅读的定制选项是什么?

IronQR提供定制选项,如设置裁剪区域、启用多线程和调整机器学习模型的准确性,以增强QR码阅读性能。

IronQR适合商业应用吗?

是的,IronQR是为商业.NET应用程序设计的,提供可靠且高效的QR码阅读功能。

哪些环境支持使用IronQR读取QR码?

IronQR支持多种.NET环境,包括Windows Forms Applications、Mobile Apps、Web Applications、MAUI和Blazor,使用.NET Framework或.NET Standard。

在哪里可以找到使用IronQR的许可信息?

要查找使用IronQR的许可信息,请访问Iron Software网站的许可部分。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。