如何使用不同掃描模式讀取 QR 碼
隨著越來越多產品邁向數位化與隨時在線的趨勢,讀取 QR 碼在 2025 年已成為一項例行任務。 將必要資料儲存於緊湊且唯讀的印記中,現已成為標準做法,開發人員需要有效的方法,在不同環境中提取這些資訊。
IronQR 提供 3 種 QR 碼讀取選項,每種皆針對特定使用情境設計。
在本操作指南中,將透過清晰的範例說明這三種方法。 若您尚未閱讀,不妨參考先前關於從圖片讀取 QR 碼或自行編寫 QR 碼的指南。
如何使用不同掃描模式讀取 QR 碼
- 下載 C# 函式庫,以進階掃描選項讀取 QR 碼
- 載入目標圖片檔案
- 初始化
QrImageInput時,需傳入圖片及所需的QrScanMode - 建立
QrReader類別的實例,並將輸入物件傳遞給Read方法 - 取得結果以存取已解碼的
Value文字,或遍歷Points陣列以取得座標資料。
了解 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)
掃描輸入
已儲存的文字檔案
自動掃描模式
自動掃描模式為預設選項(針對 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
掃描輸入
主控台顯示
透過 IronQR 掃描照片後,咖啡廳網站的 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
標有標籤的杯子圖片
標籤式控制台
掃描方法比較
功能 (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 網站下載,您亦可在該網站找到相關文件與支援資源。

