使用IRONBARCODE

C#二维码阅读器(初学者分步教程)

乔尔迪·巴尔迪亚
乔尔迪·巴尔迪亚
2024年八月18日
更新 2024年八月18日
分享:

介绍

在当今数字化驱动的世界中,QR 码(快速响应码)已经变得无处不在,无缝连接了物理和数字领域。 从营销到物流,从金融到医疗,二维码在促进高效数据交换方面发挥着举足轻重的作用。

在本文中,我们深入探讨 C# 开发领域,探索如何通过市场上最优秀的 QR 码库之一 IronQR,使开发人员能够轻松识别 QR 码、解码数据,并在各个领域进行创新。

IronQR 来自 Iron Software,是一个功能强大的 .NET QR 码读取库。 IronQR 实现的先进机器学习模型使您的应用程序能够以无与伦比的准确性和效率解码 QR 代码,即使在具有挑战性的场景中也是如此。

如何使用 IronQR 和 C# 读取 QR 码

  1. 使用Visual Studio项目创建.NET Windows窗体应用程序模板

  2. NuGet包管理器安装IronQR

  3. 从 AForge 库中以图像形式从相机获取 QR 代码

  4. 使用 IronQR 阅读 QR 码。

    IronQR 是首屈一指的 C# QR 代码读取库,专为在 .NET 框架内扫描 QR 代码和生成 QR 代码图像而设计。 通过利用尖端的 ML 技术,IronQR 将二维码阅读提升到了前所未有的水平。

    无论是扫描图像、视频还是实时摄像机画面中的 QR 码,ML 驱动的解决方案都能确保快速、可靠地检索信息。

    这种创新方法不仅简化了数据提取过程,还通过辨别真假 QR 代码和潜在威胁提高了安全性。 利用其直观的 API,开发人员可以在几分钟内将 QR 码功能无缝集成到他们的 .NET 项目中。

    IronQR 无缝集成到 .NET Core(8、7、6、5 和 3.1+)、.NET Standard(2.0+)和 .NET Framework(4.6.2+)。 目前的 .NET Core 版本将其支持扩展到了 Linux、Unix 和 macOS 等客户端操作系统,同时还兼容移动应用程序的开发。

先决条件

  1. Visual Studio:确保您已经安装了Visual Studio或任何其他.NET开发环境。

  2. 兼容相机: 确保相机已连接到您的设备。

  3. NuGet 包管理器: 验证您是否可以利用 NuGet 在您的项目中管理包。

第 1 步:使用 .NET Windows 窗体应用程序模板创建 Visual Studio 项目

让我们从创建一个 Windows 窗体 .NET 应用程序开始,从摄像头视频流或图像文件中读取 QR 码 BarCode。 打开 Visual Studio,选择创建新项目,然后选择 .NET Windows Forms 应用程序模板

Csharp Qr Code Reader Tutorial 1 related to 第 1 步:使用 .NET Windows 窗体应用程序模板创建 Visual Studio...

单击下一步并输入项目名称

Csharp Qr Code Reader Tutorial 2 related to 第 1 步:使用 .NET Windows 窗体应用程序模板创建 Visual Studio...

选择所需的 .NET 版本,然后单击创建按钮

Csharp Qr Code Reader Tutorial 3 related to 第 1 步:使用 .NET Windows 窗体应用程序模板创建 Visual Studio...

第 2 步:从 NuGet 软件包管理器安装 IronQR。

IronQR 可以通过 NuGet 包管理器或 Visual Studio 包管理器进行安装

Csharp Qr Code Reader Tutorial 4 related to 第 2 步:从 NuGet 软件包管理器安装 IronQR。

下面展示了如何使用 Visual Studio 进行翻译

Csharp Qr Code Reader Tutorial 5 related to 第 2 步:从 NuGet 软件包管理器安装 IronQR。

第 3 步:从 AForge 库中以图像形式从相机获取 QR 代码

要扫描摄像头设备上的二维码,我们需要安装 AForgeCore.Video.DirectShow 库,可以使用 Visual Studio 软件包管理器安装,如下所示。 右键单击解决方案资源管理器,打开软件包管理器。

Csharp Qr Code Reader Tutorial 6 related to 第 3 步:从 AForge 库中以图像形式从相机获取 QR 代码

此库也可以使用 NuGet 包控制台安装,如下所示。 单击安装按钮安装库

Csharp Qr Code Reader Tutorial 7 related to 第 3 步:从 AForge 库中以图像形式从相机获取 QR 代码

第 4 步:使用 IronQR 阅读 QR 码。

下一步是在表单中创建 PictureBox 组件,这是扫描连接到机器的摄像设备上的二维码图像所必需的。

这可以通过从工具箱中拖放来完成。 需要使用 PictureBox 从摄像设备读取二维码数据

Csharp Qr Code Reader Tutorial 8 related to 第 4 步:使用 IronQR 阅读 QR 码。

接下来,我们需要拖放一个文本框来显示读取的二维码。

Csharp Qr Code Reader Tutorial 9 related to 第 4 步:使用 IronQR 阅读 QR 码。

添加以下代码以使用IronQR读取二维码并对其进行解码。

using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the picture box with the new frame from the camera.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key
            License.LicenseKey = "YourKey";

            // Load  QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            // QR Reader object
            QrReader reader = new QrReader();

            // Read QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // display results
            MessageBox.Show(results.First().Value);
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;

        }

        private VideoCaptureDevice videoSource;
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                videoSource = new VideoCaptureDevice(videoDevices [0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the picture box with the new frame from the camera.
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key
            License.LicenseKey = "YourKey";

            // Load  QrImageInput
            QrImageInput imageInput = new QrImageInput(image);

            // QR Reader object
            QrReader reader = new QrReader();

            // Read QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // display results
            MessageBox.Show(results.First().Value);
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输入图像文件

二维码中的编码文本是我爱 IronQR

Csharp Qr Code Reader Tutorial 10 related to 输入图像文件

输出

Csharp Qr Code Reader Tutorial 11 related to 输出

代码解释示例

  1. 我们在 Windows 窗体中注册了 2 个事件:Form1/_Load、Form1/_FormClosing。

  2. 我们还将 VideoSource_NewFrame 注册为 AForgeCore.Video.DirectShow 库中的 videoSource 实例

  3. 然后,我们从实时视频流中读取二维码

  4. 检测到 QR 代码时,我们会显示一个带有解码文本的消息框

许可(可免费试用)

IronQR 需要许可证密钥。 试用密钥可以从此处获得。 这个密钥需要放置在appsettings.json中。

{
    "IronQR.LicenseKey":"MYLICENSE.KEY.TRIAL"
}

提供电子邮件 ID 以获取试用许可证,提交后,密钥将通过电子邮件发送。

Csharp Qr Code Reader Tutorial 12 related to 许可(可免费试用)

结论

总之,二维码已经超越了其起源,成为我们数字生态系统中不可或缺的一部分。 使用IronQR,C#开发人员可以利用二维码识别的强大功能,轻松解码各种类型的二维码数据,并在各个领域进行创新。

随着 QR 代码不断发展并融入新技术,其在促进无缝数据交换和增强用户体验方面的重要性将与日俱增。 拥抱二维码的潜力,使用IronQR,开启C#开发的创新与高效之旅。

乔尔迪·巴尔迪亚
乔尔迪·巴尔迪亚
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 运用技能时,他会进行游戏编程。作为产品测试、产品开发和研究的负责人之一,Jordi 为持续的产品改进增添了极大的价值。多样化的经验让他充满挑战和参与感,他说这是他在 Iron Software 工作中最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
< 前一页
如何在ASP.NET中使用C#生成条形码