如何使用不同的掃描模式讀取QR Code

This article was translated from English: Does it need improvement?
Translated
View the article in English

隨著2025年越來越多產品走向數位化和隨時線上存取,讀取QR code已成為日常任務。 在緊湊的唯讀印記中儲存必要資料已成為標準,並且開發者需要有效的方法來在不同環境中提取該資訊。

IronQR為QR code提供3種讀取選項,每種選項均針對特定使用案例而設計。

在本指南中,將通過清晰的範例來解釋這三種方法。 如果您尚未查看,請看看上一次的指南,其中介紹了如何從圖像中讀取QR code或寫入自己的QR code。

瞭解QR Code掃描模式

IronQR通過QrScanMode枚舉提供三種強大的掃描模式:

  • 自動模式 (QrScanMode.Auto):結合機器學習檢測和基本掃描算法,以達到最大的準確性和可靠性
  • 僅基本掃描模式 (QrScanMode.OnlyBasicScan):使用傳統圖像處理技術,在QR code清晰可見時可進行快速可靠的掃描
  • 檢測模型模式 (QrScanMode.OnlyDetectionModel):利用機器學習來檢測QR code位置,理想用於提取座標資料

讓我們詳細探索每種掃描方法。


僅基本掃描模式

僅基本掃描模式使用傳統圖像處理算法,而不使用機器學習。 當QR code清晰可見且位置良好時,該方法快速且高效; 但是,如果三個角的方形可讀,它仍然可以處理損壞的QR code。

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-basic.cs
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.IO;
using System.Linq;

// Load the image
var bmp = AnyBitmap.FromFile("damaged-qr.png");

// Create scan input using Only Basic Scan mode
var input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan);

// Get the result
var result = new QrReader().Read(input).FirstOrDefault();

// Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value);
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Linq

' Load the image
Dim bmp = AnyBitmap.FromFile("damaged-qr.png")

' Create scan input using Only Basic Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan)

' Get the result
Dim result = (New QrReader()).Read(input).FirstOrDefault()

' Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value)
$vbLabelText   $csharpLabel

掃描輸入

損壞的QR code

保存的文字文件

文字文件

自動掃描模式

自動掃描模式是預設的(用於QrScanMode),是可用的最通用選項。 它自動結合機器學習檢測和傳統掃描算法,以在各種圖像條件下提供最佳結果。

範例顯示了一幅圖像正在被載入並啟動Auto模式。 然後它掃描圖像,將找到的每個QR code收集到清單中。最後,它遍歷results集合,在控制台中列印出每個值的文字(在這種情況下就是URL)。

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-auto.cs
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;

// Load the image file
var bmp = AnyBitmap.FromFile("cup.png");

// Create scan input using Auto Scan mode
var input = new QrImageInput(bmp, QrScanMode.Auto);

// Scan and read all QR codes
var results = new QrReader().Read(input);

// Initialize a counter to track the number of QR codes
int count = 1;

// Loop through each discovered QR code
foreach (var result in results)
{
    Console.WriteLine($"QR {count}: {result.Value}");
    count++;
}
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing

' Load the image file
Dim bmp = AnyBitmap.FromFile("cup.png")

' Create scan input using Auto Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.Auto)

' Scan and read all QR codes
Dim results = New QrReader().Read(input)

' Initialize a counter to track the number of QR codes
Dim count As Integer = 1

' Loop through each discovered QR code
For Each result In results
    Console.WriteLine($"QR {count}: {result.Value}")
    count += 1
Next
$vbLabelText   $csharpLabel

掃描輸入

連結到咖啡館網站的杯子

控制台顯示

通過IronQR掃描照片後,咖啡館網站的URL被記錄下來。

網站URL的控制台顯示

檢測模型模式

檢測模型模式專門使用機器學習來檢測圖像中的QR code位置。 這使其在空間分析和計算機視覺應用中非常有價值。 它使用的坐標系的原點位於(0, 0)

通常,QR掃描器利用依賴於三個查找圖案的標準解碼算法,而此模型則捕捉ID的所有四個頂點。 Points集合。

程式碼重用上例中的杯子照片來展示如何檢測圖像中的位置值。

請注意此函式返回的坐標以嚴格的"之"字形順序儲存:左上角、右上角、左下角,最後是右下角

:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-detection-model.cs
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Linq;

// Load the image
var bmp = AnyBitmap.FromFile("cup.png");

// Create scan input using Detection Model mode
var input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel);

// Read QR code
var result = new QrReader().Read(input).FirstOrDefault();

// Print position data
if (result != null)
{
    if (result.Points != null)
    {
        foreach (var point in result.Points)
        {
            Console.WriteLine($"Point: X={point.X}, Y={point.Y}");
        }
    }
}
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Linq

' Load the image
Dim bmp = AnyBitmap.FromFile("cup.png")

' Create scan input using Detection Model mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel)

' Read QR code
Dim result = (New QrReader()).Read(input).FirstOrDefault()

' Print position data
If result IsNot Nothing Then
    If result.Points IsNot Nothing Then
        For Each point In result.Points
            Console.WriteLine($"Point: X={point.X}, Y={point.Y}")
        Next
    End If
End If
$vbLabelText   $csharpLabel

已標記的杯子圖片

已標記的杯子

已標記的控制台

已標記的控制台

掃描方法的比較

功能 (QRScanMode) 基本掃描 (OnlyBasicScan) 自動掃描 (Auto) 檢測模型 (OnlyDetectionModel)
輸出 解碼後的文字 (值) 解碼後的文字 (值) 座標 (點)
算法 僅傳統 混合 (ML + 傳統) 僅機器學習
重點 速度 可讀性 / 檢索 定位 / 計算機視覺

結論

IronQR的三種掃描模式為任何QR code讀取場景提供靈活性:

  • 自動掃描:具有最大準確性和可靠性的一般用途
  • 基本掃描:針對高質量圖像的速度和效率
  • 檢測模型:針對空間應用的定位感知

通過了解每種方法的優勢,您可以根據特定需求優化您的QR code讀取實施。 無論您需要全面的資料提取、快速的處理還是精確的位置檢測,IronQR都能滿足您的需求。

欲了解更多範例和詳細API資訊,請存取IronQR 文件或探索GitHub上的程式碼範例

常見問題

有哪些不同的掃描模式可用於讀取QR碼?

IronQR提供多種掃描模式,例如自動、手動和批量掃描,以便在不同情境下高效讀取QR碼。

如何在C#專案中實施QR碼掃描?

您可以通過整合IronQR程式庫在C#專案中實現QR碼掃描,該程式庫提供簡單易用的方法來以不同的掃描模式讀取QR碼。

使用IronQR進行QR碼掃描有哪些好處?

IronQR提供高準確性、快速處理,並支援不同的掃描模式,使其成為C#專案中QR碼掃描的多功能選擇。

使用IronQR是否可以一次讀取多個QR碼?

是的,IronQR支援批量掃描模式,允許您同時讀取多個QR碼以提高效率。

IronQR支援從多個來源掃描QR碼嗎?

IronQR可以從多個來源掃描QR碼,包括圖像、PDF和實時攝像頭供應,為開發者提供靈活性。

IronQR能處理不同方向的QR碼嗎?

是的,IronQR設計能夠準確讀取不論方向的QR碼,確保可靠的掃描結果。

IronQR中的自動掃描模式如何運作?

IronQR中的自動掃描模式能智能地檢測和讀取QR碼,無需手動輸入,簡化掃描過程。

使用IronQR進行QR碼掃描需要哪些程式技能?

基本的C#程式知識足以使用IronQR進行QR碼掃描,因為該程式庫提供簡單的整合和使用。

IronQR有試用版本可供測試嗎?

是的,IronQR提供試用版本,允許開發者在購買前測試其功能和掃描模式。

我可以從哪裡下載IronQR程式庫?

IronQR程式庫可以從Iron Software網站下載,您也可以在那裡找到文件和支援資源。

Ahmad Sohail
全端開發人員

Ahmad是一位擁有C#、Python和網頁技術堅實基礎的全端開發人員。他對構建可擴展的軟體解決方案深感興趣,並喜歡探索設計和功能在現實世界應用中的結合。

加入Iron Software團隊之前,Ahmad曾致力於自動化專案和API整合,專注於提升性能和開發者體驗。

在空閒時間,他喜歡試驗UI/UX理念,為開放原始碼工具做出貢獻,偶爾也會潛心編寫技術文件和文章以簡化複雜的主題。

準備好開始了嗎?
Nuget 下載 70,398 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明嗎? PM > Install-Package IronQR
執行一個範例 觀看您的URL變成QR碼。