使用 IRONBARCODE

C# QR碼讀取器(初學者逐步教程)

已更新 2024年8月18日
分享:

介紹

在當今數位驅動的世界中,QR碼(快速反應碼)已變得無所不在,無縫連接物理和數字領域。 從行銷到物流,從金融到醫療保健,QR碼在促進高效數據交換方面發揮了關鍵作用。

在本文中,我們深入探討了 C# 開發的領域,探索如何IronQR,作為市場上最好的 QR Code 庫之一,為開發人員提供了利用 QR Code 識別功能的能力,輕鬆解碼數據,並在各個領域進行創新。

IronQR 來自Iron Software作為強大的 .NET QR 碼讀取器庫脫穎而出。 IronQR 實現的先進機器學習模型使您的應用程序能夠以無與倫比的準確性和效率解碼 QR 碼,即使在具有挑戰性的情況下也是如此。

如何使用 C# 搭配 IronQR 讀取 QR 碼

  1. 建立Visual Studio使用 .NET Windows 表單應用程式範本的專案

  2. 安裝IronQR來自NuGet包管理器。

  3. 從 AForge Library 中將相機的 QR code 作為圖像獲取

  4. 使用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,同時也兼容移動應用程式開發。

先決條件

  1. Visual Studio: 確保您已安裝 Visual Studio 或任何其他 .NET 開發環境。

  2. 兼容攝像頭: 確保攝像頭已連接到您的設備。

  3. NuGet 套件管理器: 確認您可以使用NuGet在您的專案中管理套件。

步驟 1:使用.NET Windows Forms應用程式範本創建一個Visual Studio專案

讓我們開始建立一個 Windows 表單 .NET 應用程式,以從相機視頻流或圖像文件中讀取 QR 碼條形碼。 打開 Visual Studio,選擇建立新專案,然後選擇 .NET Windows Forms 應用程式範本。

Csharp Qr Code Reader Tutorial 1 related to 步驟 1:使用.NET Windows Forms應用程式範本創建一個Visual Stud...

點擊下一步並輸入專案名稱

Csharp Qr Code Reader Tutorial 2 related to 步驟 1:使用.NET Windows Forms應用程式範本創建一個Visual Stud...

選擇所需的 .NET 版本,然後點擊創建按鈕。

Csharp Qr Code Reader Tutorial 3 related to 步驟 1:使用.NET Windows Forms應用程式範本創建一個Visual Stud...

步驟 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 碼作為圖像獲取

要從相機裝置掃描 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 元件,這是必須的,以便從連接到機器的相機設備掃描 QR 碼圖像。

這可以通過從工具箱中拖放來完成。 此 PictureBox 用於從攝像設備讀取 QR 碼數據

Csharp Qr Code Reader Tutorial 8 related to 第 4 步:使用 IronQR 讀取 QR 碼。

接下來,我們需要拖放一個文字框來顯示讀取的 QR 碼。

Csharp Qr Code Reader Tutorial 9 related to 第 4 步:使用 IronQR 讀取 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
VB   C#

輸入圖像檔案

QR 碼中的編碼文本是:I Love IronQR

Csharp Qr Code Reader Tutorial 10 related to 輸入圖像檔案

輸出

Csharp Qr Code Reader Tutorial 11 related to 輸出

範例代碼說明

  1. 我們已在 Windows 表單 Form1_Load, Form1_FormClosing 中註冊了兩個事件。

  2. 我們還對 AForgeCore.Video.DirectShow 庫中的 videoSource 實例註冊了 VideoSource_NewFrame。

  3. 然後我們從實時視頻流中讀取QR碼。

  4. 當偵測到 QR 碼時,我們會顯示一個對話框,裡面有解碼後的文本。

授權(免費試用可用)

IronQR需要授權金鑰。 試用金鑰可從網站獲取這裡. 此鍵需要放置在 appsettings.json 中。

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

提供電子郵件地址以獲取試用許可證,提交後,密鑰將通過電子郵件發送。

Csharp Qr Code Reader Tutorial 12 related to 授權(免費試用可用)

結論

總之,QR碼已超越其起源,成為我們數位生態系中不可或缺的一部分。 與IronQRC# 開發人員可以利用 QR 碼識別的強大功能,輕鬆解碼各種類型的 QR 碼數據,並在各個領域創新。

隨著 QR 碼的不斷演進和融入新技術,它們在促進無縫數據交換和增強用戶體驗方面的重要性將只會不斷增長。 擁抱QR碼的潛力,透過IronQR踏上 C# 開發創新與效率之旅。

< 上一頁
如何在 ASP.NET 中使用 C# 生成條碼

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,290,353 查看許可證 >