使用IRONBARCODE

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

更新 2024年八月18日
分享:

简介

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

在本文中,我们将深入探讨 C# 开发领域,探索如何 IronQR作为市场上最好的 QR 代码库之一,它使开发人员能够利用 QR 代码识别的强大功能,毫不费力地解码数据,并在各个领域进行创新。

来自 铁软件 IronQR 是一款强大的 .NET QR 码阅读器库。IronQR 采用先进的机器学习模型,即使在具有挑战性的情况下,也能使您的应用程序以无与伦比的准确性和效率解码 QR 代码。

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

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

2.安装 IronQRNuGet 包管理器。

  1. 从AForge库中获取来自相机的二维码图像

  2. 使用IronQR读取二维码。

IronQR IronQR 是首屈一指的 C# QR 码阅读器库,可在 .NET 框架内扫描 QR 码并生成 QR 码图像。通过利用最先进的 ML 技术,IronQR 将 QR 码阅读提升到了前所未有的水平。

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

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

IronQR 与 .NET Core 无缝集成 (8、7、6、5 和 3.1+), .NET 标准 (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 码条形码。打开 Visual Studio,选择创建新项目,然后选择 .NET Windows 窗体应用程序模板

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

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

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

IronQR 可以使用 NuGet 软件包管理器或 Visual Studio 软件包管理器

下面展示了如何使用 Visual Studio 进行操作

第 3 步:从 AForge 库中获取相机中的二维码作为图像

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

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

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

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

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

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

添加以下代码来读取 QR 码,并使用以下方式解码 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
VB   C#

输入图像文件

二维码中的编码文本是我爱钢铁QR

输出

示例代码说明

1.我们在 Windows 窗体中注册了 2 个事件,分别是 Form1_Load 和 Form1_FormClosing

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

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

4.检测到二维码后,我们会显示一个带有解码文本的消息框

许可 (可免费试用)

IronQR 需要许可证密钥。试用密钥可从网站获取 这里.此密钥需要放在 appsettings.json 中。

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

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

结论

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

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

< 前一页
如何在ASP.NET中使用C#生成条形码

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

免费NuGet下载 总下载量: 1,183,574 查看许可证 >