在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在当今数字化驱动的世界中,二维码(快速反应代码)网络已变得无处不在,无缝连接着物理和数字领域。 从营销到物流,从金融到医疗,二维码在促进高效数据交换方面发挥着举足轻重的作用。
在本文中,我们将深入 C# 开发领域,探讨如何IronQR作为市场上最好的 QR 代码库之一,.NET QR 代码库使开发人员能够利用 QR 代码识别的强大功能,毫不费力地解码数据,并在各个领域进行创新。
IronQR 来自铁软件作为一个强大的 .NET QR 码阅读器库,.NET QR 码阅读器库的功能非常突出。 IronQR 实现的先进机器学习模型使您的应用程序能够以无与伦比的准确性和效率解码 QR 代码,即使在具有挑战性的场景中也是如此。
创建Visual Studio使用 .NET Windows 窗体应用程序模板的项目
从 AForge 库中以图像形式从相机获取 QR 代码
使用 IronQR 阅读 QR 码。
IronQRC# QR 码阅读器库是最重要的 C# QR 码阅读器库,可在 .NET Framework 内扫描 QR 码并生成 QR 码图像。 通过利用尖端的 ML 技术,IronQR 将二维码阅读提升到了前所未有的水平。
无论是扫描图像、视频还是实时摄像机画面中的 QR 码,ML 驱动的解决方案都能确保快速、可靠地检索信息。
这种创新方法不仅简化了数据提取过程,还通过辨别真假 QR 代码和潜在威胁提高了安全性。 利用其直观的 API,开发人员可以在几分钟内将 QR 码功能无缝集成到他们的 .NET 项目中。
IronQR for .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 码 BarCode。 打开 Visual Studio,选择创建新项目,然后选择 .NET Windows Forms 应用程序模板
单击下一步并输入项目名称
选择所需的 .NET 版本,然后单击创建按钮
IronQR可以使用NuGet软件包管理器或 Visual Studio 软件包管理器
下面展示了如何使用 Visual Studio 进行翻译
要扫描摄像头设备上的二维码,我们需要安装 AForgeCore.Video.DirectShow 库,可以使用 Visual Studio 软件包管理器安装,如下所示。 右键单击解决方案资源管理器,打开软件包管理器。
也可使用NuGet软件包控制台如下。 单击安装按钮安装库
下一步是在表单中创建 PictureBox 组件,这是扫描连接到机器的摄像设备上的二维码图像所必需的。
这可以通过从工具箱中拖放来完成。 需要使用 PictureBox 从摄像设备读取二维码数据
接下来,我们需要拖放一个文本框来显示读取的二维码。
添加以下代码以读取 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
二维码中的编码文本是我爱 IronQR
我们在 Windows 窗体中注册了 2 个事件:Form1/_Load、Form1/_FormClosing。
我们还将 VideoSource_NewFrame 注册为 AForgeCore.Video.DirectShow 库中的 videoSource 实例
然后,我们从实时视频流中读取二维码
IronQR需要许可证密钥。 试用密钥可从网站获取这里. 这个密钥需要放置在appsettings.json中。
{
"IronQR.LicenseKey":"MYLICENSE.KEY.TRIAL"
}
提供电子邮件 ID 以获取试用许可证,提交后,密钥将通过电子邮件发送。
总之,二维码已经超越了其起源,成为我们数字生态系统中不可或缺的一部分。 与IronQRC# 开发人员可以利用二维码识别的强大功能,轻松解码各种类型二维码中的数据,并在各个领域进行创新。
随着 QR 代码不断发展并融入新技术,其在促进无缝数据交换和增强用户体验方面的重要性将与日俱增。 利用 QR 代码的潜力IronQR并踏上 C# 开发的创新和高效之旅。