如何使用不同的掃描模式讀取QR Code
隨著2025年越來越多產品走向數位化和隨時線上存取,讀取QR code已成為日常任務。 在緊湊的唯讀印記中儲存必要資料已成為標準,並且開發者需要有效的方法來在不同環境中提取該資訊。
IronQR為QR code提供3種讀取選項,每種選項均針對特定使用案例而設計。
在本指南中,將通過清晰的範例來解釋這三種方法。 如果您尚未查看,請看看上一次的指南,其中介紹了如何從圖像中讀取QR code或寫入自己的QR code。
如何使用不同的掃描模式讀取QR Code
- 下載C#程式庫以使用進階掃描選項讀取QR code
- 載入目標圖像文件
- 初始化一個
QrImageInput,傳入圖像和所需的QrScanMode - 實例化
QrReader類並將輸入物件傳遞到Read方法 - 檢索結果以獲取解碼後的
Value文字或遍歷Points陣列以獲取座標資料。
瞭解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)
掃描輸入
保存的文字文件
自動掃描模式
自動掃描模式是預設的(用於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
掃描輸入
控制台顯示
通過IronQR掃描照片後,咖啡館網站的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
已標記的杯子圖片
已標記的控制台
掃描方法的比較
功能 (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網站下載,您也可以在那裡找到文件和支援資源。

