如何使用不同的掃描模式讀取 QR code
到 2025 年,隨著越來越多的產品走向數位化和始終在線訪問,讀取二維碼將成為一項常規任務。 將必要資料儲存在緊湊的唯讀映像中已成為標準做法,開發人員需要有效的方法在不同的環境中提取這些資訊。
IronQR為二維碼提供 3 種讀取選項,每個選項都針對特定的使用情境而設計。
本操作指南將透過清晰的範例解釋這三種方法。 如果您還沒有看過,請查看先前關於從圖像中讀取二維碼或編寫自己的二維碼的指南。
如何使用不同的掃描模式讀取二維碼
- 下載 C# 庫,即可使用進階掃描選項讀取二維碼
- 載入目標圖片文件
- 初始化`QrImageInput` ,傳入影像和所需的`QrScanMode`參數。
- 實例化`QrReader`類別並將輸入物件傳遞給`Read`方法。
- 檢索結果以存取解碼後的`Value`文本,或遍歷`Points`陣列以取得座標資料。
了解二維碼掃描模式
IronQR透過 QrScanMode 枚舉提供三種強大的掃描模式:
自動模式(QrScanMode.Auto):結合機器學習偵測和基本掃描演算法,以實現最高的準確性和可靠性。
-僅基本掃描模式(QrScanMode.OnlyBasicScan): 當二維碼清晰可見時,使用傳統的影像處理技術進行快速可靠的掃描
-偵測模型模式(QrScanMode.OnlyDetectionModel): 利用機器學習技術偵測二維碼位置,非常適合擷取座標數據
讓我們詳細了解每種掃描方法。
僅基本掃描模式
只有基本掃描模式使用傳統的影像處理演算法,而沒有使用機器學習。 當二維碼清晰可見且位置恰當時,這種方法快速且有效率; 但是,如果三個角落上的方塊清晰可見,即使二維碼損壞,它仍然可以正常工作。
: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 模式。 然後,它掃描圖像,並將找到的每個二維碼收集到一個列表中。最後,它遍歷 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 會被記錄下來。
檢測模型模式
偵測模型模式專門利用機器學習技術來偵測影像中的二維碼位置。 這項特性使其在空間分析和電腦視覺應用上具有不可估量的價值。 它使用的座標係原點位於 (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的三種掃描模式可靈活應對任何二維碼讀取情境:
-自動掃描:適用於一般用途,具有最高的準確性和可靠性 -基本掃描:速度快、效率高,影像品質高。 -偵測模型:空間應用的位置感知
透過了解每種方法的優勢,您可以根據自身需求最佳化二維碼讀取實作。 無論您需要全面的資料擷取、閃電般的處理速度或精確的位置偵測, IronQR都能滿足您的需求。
有關更多範例和詳細的 API 信息,請訪問IronQR文件或瀏覽GitHub上的程式碼範例。
常見問題解答
讀取二維碼有哪些不同的掃描模式?
IronQR 提供自動、手動和大量掃描等多種掃描模式,可在不同場景下有效讀取二維碼。
如何在C#專案中實現二維碼掃描?
您可以透過整合 IronQR 庫在 C# 專案中實現二維碼掃描,該程式庫提供了易於使用的讀取二維碼的方法,並支援不同的掃描模式。
使用 IronQR 進行二維碼掃描有哪些好處?
IronQR 具有高精度、快速處理能力,並支援不同的掃描模式,使其成為 C# 專案中二維碼掃描的多功能選擇。
IronQR 是否可以同時讀取多個二維碼?
是的,IronQR 支援批次掃描模式,可同時讀取多個二維碼,進而提高效率。
IronQR是否支援掃描來自不同來源的二維碼?
IronQR 可以掃描來自各種來源的二維碼,包括影像、PDF 和即時攝影機畫面,為開發人員提供了靈活性。
IronQR 能否處理不同方向的二維碼?
是的,IronQR 的設計旨在準確讀取任何方向的二維碼,確保可靠的掃描結果。
IronQR的自動掃描模式是如何運作的?
IronQR 的自動掃描模式可以智慧地偵測和讀取二維碼,無需手動輸入,從而簡化掃描過程。
使用 IronQR 進行二維碼掃描需要哪些程式設計技能?
具備 C# 程式設計的基礎知識即可使用 IronQR 進行二維碼掃描,因為該程式庫提供了簡單直接的整合和使用方式。
IronQR是否有可供測試的試用版?
是的,IronQR 提供試用版,讓開發者在購買前測試其功能和掃描模式。
我可以在哪裡下載IronQR庫?
您可以從 Iron Software 網站下載 IronQR 庫,您也可以在該網站上找到文件和支援資源。

