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

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

隨著越來越多產品邁向數位化與隨時在線的趨勢,讀取 QR 碼在 2025 年已成為一項例行任務。 將必要資料儲存於緊湊且唯讀的印記中,現已成為標準做法,開發人員需要有效的方法,在不同環境中提取這些資訊。

IronQR 提供 3 種 QR 碼讀取選項,每種皆針對特定使用情境設計。

在本操作指南中,將透過清晰的範例說明這三種方法。 若您尚未閱讀,不妨參考先前關於從圖片讀取 QR 碼或自行編寫 QR 碼的指南。

了解 QR 碼掃描模式

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

  • 自動模式 (QrScanMode.Auto):結合機器學習偵測與基礎掃描演算法,以實現最高準確度與可靠性
  • 僅基本掃描模式 (QrScanMode.OnlyBasicScan):當 QR 碼清晰可見時,採用傳統影像處理技術進行快速且可靠的掃描
  • 偵測模型模式 (QrScanMode.OnlyDetectionModel):運用機器學習偵測 QR 碼位置,非常適合用於擷取座標資料

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


僅基本掃描模式

僅"基本掃描"模式採用傳統影像處理演算法,不使用機器學習技術。 當 QR 碼清晰可見且位置適當時,此方法既快速又高效; 然而,若三個角落的方塊仍可辨識,即使 QR 碼受損,它依然能正常運作。

: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 碼

已儲存的文字檔案

文字檔案

自動掃描模式

自動掃描模式為預設選項(針對 QrScanMode),也是目前最通用的選項。 它自動結合機器學習偵測與傳統掃描演算法,在各種影像條件下提供最佳的掃描結果。

此範例展示了一張圖片正在載入,並啟用了 Auto 模式。 接著,它會掃描圖片並將找到的所有 QR 碼收集到一個清單中。最後,它會遍歷 results 集合,並將其中每個值的文字(在此情況下僅為 URL)PRINT 至主控台。

: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

掃描輸入

附有 Cafe 網站連結的杯子

主控台顯示

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

網站 URL 的控制台顯示

偵測模型模式

"偵測模型"模式採用機器學習技術,專門用於偵測圖像中的 QR 碼位置。 這項特性使其在空間分析與電腦視覺應用中極具價值。 其使用的座標系原點位於 (0, 0)

一般而言,QR 碼掃描器採用標準解碼演算法,該演算法依賴三種定位圖案;此模型則能捕捉 ID 的所有四個頂點。 result 物件包含一個 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)
輸出 解碼文字 (值) 解碼文字 (值) 座標 (點)
演算法 僅限傳統格式 混合式(機器學習 + 傳統) 僅限機器學習
重點 速度 可讀性 / 檢索 在地化 / 電腦視覺

結論

IronQR 的三種掃描模式,能靈活應對任何 QR 碼讀取情境:

  • 自動掃描:適用於一般用途,具備最高準確度與可靠性
  • 基本掃描:兼顧速度與效率,呈現高品質影像
  • 偵測模型:適用於空間應用的位置感知功能

透過了解每種方法的優勢,您可以根據特定需求來優化 QR 碼讀取的實作。 無論您需要全面性的資料擷取、極速處理,還是精準的位置偵測,IronQR 都能滿足您的需求。

如需更多範例及詳細 API 資訊,請參閱 IronQR 文件,或瀏覽 GitHub 上的程式碼範例

常見問題

掃描 QR 碼時有哪些不同的掃描模式?

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

如何在 C# 專案中實作 QR 碼掃描功能?

您可以在 C# 專案中整合 IronQR程式庫來實作 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 碼掃描需要哪些程式設計技能?

使用 IronQR 進行 QR 碼掃描只需具備基本的 C# 程式設計知識,因為該程式庫提供直觀的整合與使用方式。

IronQR 是否有可供測試的試用版?

是的,IronQR 提供試用版,讓開發人員在決定購買前,能先測試其功能與掃描模式。

我該去哪裡下載 IronQR程式庫?

IronQR程式庫可從 Iron Software 網站下載,您亦可在該網站找到相關文件與支援資源。

Ahmad Sohail
全端開發者

Ahmad 是一位全端開發者,具備扎實的 C#、Python 及網頁技術基礎。他對建構可擴展的軟體解決方案深感興趣,並樂於探索設計與功能如何在實際應用中完美結合。

在加入 Iron Software 團隊之前,Ahmad 曾參與自動化專案與 API 整合工作,專注於提升效能與開發者體驗。

閒暇之餘,他喜歡嘗試 UI/UX 創意、為開源工具貢獻心力,並偶爾投入技術寫作與文件編寫,致力於將複雜的主題轉化為淺顯易懂的內容。

準備開始了嗎?
Nuget 下載 67,270 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronQR
執行範例 觀看您的 URL 轉為 QR 碼。