在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在当今数字驱动的世界中,二维码 (快速反应代码) 已变得无处不在,将物理和数字领域无缝连接起来。从营销到物流,从金融到医疗,二维码在促进高效数据交换方面发挥着举足轻重的作用。
在本文中,我们将深入探讨 C# 开发领域,探索如何 IronQR作为市场上最好的 QR 代码库之一,它使开发人员能够利用 QR 代码识别的强大功能,毫不费力地解码数据,并在各个领域进行创新。
来自 铁软件 IronQR 是一款强大的 .NET QR 码阅读器库。IronQR 采用先进的机器学习模型,即使在具有挑战性的情况下,也能使您的应用程序以无与伦比的准确性和效率解码 QR 代码。
1.创建 Visual Studio 使用 .NET Windows 窗体应用程序模板的项目
从AForge库中获取来自相机的二维码图像
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 等客户端操作系统,并兼容移动应用程序的开发。
Visual Studio: 确保已安装 Visual Studio 或其他 .NET 开发环境。
兼容摄像头: 确保摄像头已连接到设备。
让我们开始创建一个 Windows 窗体 .NET 应用程序,从摄像头视频流或图像文件中读取 QR 码条形码。打开 Visual Studio,选择创建新项目,然后选择 .NET Windows 窗体应用程序模板
单击下一步并输入项目名称
选择所需的 .NET 版本,然后单击创建按钮
IronQR 可以使用 NuGet 软件包管理器或 Visual Studio 软件包管理器
下面展示了如何使用 Visual Studio 进行操作
要扫描摄像头设备上的二维码,我们需要安装 AForgeCore.Video.DirectShow 库,这可以通过 Visual Studio 软件包管理器完成,如下所示。右键单击解决方案资源管理器,打开软件包管理器。
也可以使用 NuGet 软件包控制台,如下所示。点击安装按钮安装库
下一步是在表单中创建一个 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
二维码中的编码文本是我爱钢铁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# 开发的创新和高效之旅。