在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在當今數位驅動的世界中,QR碼(快速反應碼)已變得無所不在,無縫連接物理和數字領域。 從行銷到物流,從金融到醫療保健,QR碼在促進高效數據交換方面發揮了關鍵作用。
在本文中,我們深入探討了 C# 開發的領域,探索如何IronQR,作為市場上最好的 QR Code 庫之一,為開發人員提供了利用 QR Code 識別功能的能力,輕鬆解碼數據,並在各個領域進行創新。
IronQR 來自Iron Software作為強大的 .NET QR 碼讀取器庫脫穎而出。 IronQR 實現的先進機器學習模型使您的應用程序能夠以無與倫比的準確性和效率解碼 QR 碼,即使在具有挑戰性的情況下也是如此。
建立Visual Studio使用 .NET Windows 表單應用程式範本的專案
從 AForge Library 中將相機的 QR code 作為圖像獲取
使用IronQR讀取QR碼。
IronQR作為首屈一指的 C# QR code 讀取庫,它被設計用於在 .NET framework 中掃描 QR code 並生成 QR code 圖像。 透過利用尖端的機器學習技術,IronQR 將 QR 碼的讀取提升到前所未有的水準。
無論是從圖像、影片或是即時攝影鏡頭獲取 QR 碼,這種機器學習驅動的解決方案都能保證快速且可靠的資訊提取。
這種創新的方法不僅簡化了資料擷取,還透過辨別真實 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,同時也兼容移動應用程式開發。
Visual Studio: 確保您已安裝 Visual Studio 或任何其他 .NET 開發環境。
兼容攝像頭: 確保攝像頭已連接到您的設備。
讓我們開始建立一個 Windows 表單 .NET 應用程式,以從相機視頻流或圖像文件中讀取 QR 碼條形碼。 打開 Visual Studio,選擇建立新專案,然後選擇 .NET Windows Forms 應用程式範本。
點擊下一步並輸入專案名稱
選擇所需的 .NET 版本,然後點擊創建按鈕。
IronQR可以使用NuGet套件管理器或 Visual Studio 套件管理器
下面顯示如何使用 Visual Studio 來完成此操作
要從相機裝置掃描 QR 碼,我們需要安裝 AForgeCore.Video.DirectShow 庫,可以使用 Visual Studio 套件管理器來完成,如下所示。 在解決方案瀏覽器上右鍵點擊並打開套件管理器。
此函式庫也可以使用NuGet如下打包控制台。 按下安裝按鈕以安裝該程式庫
下一步是在表單中創建一個 PictureBox 元件,這是必須的,以便從連接到機器的相機設備掃描 QR 碼圖像。
這可以通過從工具箱中拖放來完成。 此 PictureBox 用於從攝像設備讀取 QR 碼數據
接下來,我們需要拖放一個文字框來顯示讀取的 QR 碼。
將以下代碼添加到使用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
QR 碼中的編碼文本是:I Love IronQR
我們已在 Windows 表單 Form1_Load, Form1_FormClosing 中註冊了兩個事件。
我們還對 AForgeCore.Video.DirectShow 庫中的 videoSource 實例註冊了 VideoSource_NewFrame。
然後我們從實時視頻流中讀取QR碼。
IronQR需要授權金鑰。 試用金鑰可從網站獲取這裡. 此鍵需要放置在 appsettings.json 中。
{
"IronQR.LicenseKey":"MYLICENSE.KEY.TRIAL"
}
提供電子郵件地址以獲取試用許可證,提交後,密鑰將通過電子郵件發送。
總之,QR碼已超越其起源,成為我們數位生態系中不可或缺的一部分。 與IronQRC# 開發人員可以利用 QR 碼識別的強大功能,輕鬆解碼各種類型的 QR 碼數據,並在各個領域創新。
隨著 QR 碼的不斷演進和融入新技術,它們在促進無縫數據交換和增強用戶體驗方面的重要性將只會不斷增長。 擁抱QR碼的潛力,透過IronQR踏上 C# 開發創新與效率之旅。