如何在 C# 中讀取 QR 碼類型

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

在執行階段識別任何掃描 QR 碼的格式。閱讀 QrResult.QrType 以偵測符碼類型,並針對各種輸入來源建立具類型意識的處理邏輯。

當應用程式接受來自多個來源的 QR 碼時,其格式未必總是可預測的。 物流平台可能會收到來自運送標籤的標準 QR 碼,以及來自產品標籤的緊湊型 Micro QR 碼。 文件處理系統可能會掃描嵌入 PDF 中的條碼,以及印製在實體媒體上的條碼。 讀取 QrResult.QrType 可讓應用程式得知偵測到的格式,從而能夠驗證輸入內容、將資料路由至正確的處理程序,或記錄不支援的格式以供審查。

本指南將示範如何使用 IronQR程式庫,從掃描結果中擷取 QR 碼格式。 尚未掃描過 QR 碼的開發者,請先參閱《從圖片讀取 QR 碼》指南。

快速入門:掃描 QR 碼類型

載入圖片,使用 QrReader 進行掃描,並取得偵測到的格式。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronQR

    PM > Install-Package IronQR
  2. 請複製並執行此程式碼片段。

    var input = new QrImageInput("qr-code.png");
    var results = new QrReader().Read(input);
    Console.WriteLine(results.First().QrType);
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronQR

    arrow pointer

如何讀取 QR 碼類型?

要讀取 QR 碼的類型,請將圖片載入 QrImageInput,傳遞給 QrReader.Read(),並在返回的 QrResult 上存取 QrType。 此屬性會傳回一個 QrEncoding 枚舉值,用以識別偵測到的符號系統。

輸入

下方的 QR 碼編碼了 https://ironsoftware.com,掃描後將提取其類型。

QR 碼編碼 https://ironsoftware.com 作為類型檢測的輸入
:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type.cs
using IronQr;
using System.Drawing;
using System.Linq;

// Import an image containing a QR code
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
QrReader reader = new QrReader();

// Read the input and get all embedded QR codes
IEnumerable<QrResult> results = reader.Read(imageInput);

// Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}");
Imports IronQr
Imports System.Drawing
Imports System.Linq

' Import an image containing a QR code
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)

' Create a QR Reader object
Dim reader As New QrReader()

' Read the input and get all embedded QR codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

' Display the type of the first QR code found
Console.WriteLine($"The QR type is {results.First().QrType}")
$vbLabelText   $csharpLabel

QrType 會傳回 QrEncoding 枚舉值,例如 QrEncoding.MicroQRCodeQrEncoding.RMQRCode。 這使得該內容可直接安全地用於 switch 語句中,無需進行解析或字串比對。

輸出

顯示偵測到的 QR 碼類型的主控台輸出

如何根據 QR 碼格式進行處理路由?

當應用程式從多個來源接收 QR 碼時,並非所有輸入的格式都相同。 使用 switch 處理 QrResult.QrType,根據其 QrEncoding 值,將每個偵測到的代碼導向正確的處理程序。 此設計可將格式專屬的邏輯隔離,並使新增格式分支變得簡單直觀。

使用上述相同的輸入 QR 碼:

:path=/static-assets/qr/content-code-examples/how-to/read-qr-code-type-all.cs
using IronQr;
using IronQr.Enum;
using System.Drawing;

// Import an image containing QR codes
var inputImage = Image.FromFile("sample.jpg");

// Load the asset into a QrImageInput object
QrImageInput imageInput = new QrImageInput(inputImage);

// Create a QR Reader object
QrReader reader = new QrReader();

// Read all embedded QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);

// Route processing based on the detected QR code format
foreach (QrResult result in results)
{
    switch (result.QrType)
    {
        case QrEncoding.QRCode:
            Console.WriteLine($"Standard QR Code: {result.Value}");
            break;
        case QrEncoding.MicroQRCode:
            Console.WriteLine($"Micro QR Code: {result.Value}");
            break;
        case QrEncoding.RMQRCode:
            Console.WriteLine($"RMQR Code: {result.Value}");
            break;
        default:
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}");
            break;
    }
}
Imports IronQr
Imports IronQr.Enum
Imports System.Drawing

' Import an image containing QR codes
Dim inputImage As Image = Image.FromFile("sample.jpg")

' Load the asset into a QrImageInput object
Dim imageInput As New QrImageInput(inputImage)

' Create a QR Reader object
Dim reader As New QrReader()

' Read all embedded QR codes from the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

' Route processing based on the detected QR code format
For Each result As QrResult In results
    Select Case result.QrType
        Case QrEncoding.QRCode
            Console.WriteLine($"Standard QR Code: {result.Value}")
        Case QrEncoding.MicroQRCode
            Console.WriteLine($"Micro QR Code: {result.Value}")
        Case QrEncoding.RMQRCode
            Console.WriteLine($"RMQR Code: {result.Value}")
        Case Else
            Console.WriteLine($"Other format ({result.QrType}): {result.Value}")
    End Select
Next
$vbLabelText   $csharpLabel

每個 case 對應一個特定的 QrEncoding 值。 QrType 分支會處理任何未明確處理的格式,因此即使遇到意外輸入,迴圈也不會靜默失敗。 隨著應用程式需要支援更多格式,請新增更多範例。

輸出

顯示每個偵測到的 QR 碼之格式導向路由結果的控制台輸出

QrResult.QrType 會返回什麼?

QrResult.QrType 是每個 QrEncoding enum 上的 QrResult 屬性,用於識別掃描器偵測到的符號系統。 此內容會在 QrReader.Read() 期間自動填入,無需額外設定。 請在 switch 中加入 using IronQr.Enum; 以直接使用 QrEncoding 的值。

價值 描述
QrEncoding.QRCode 標準 QR 碼,各產業中最廣泛使用的格式
QrEncoding.MicroQRCode 專為印刷面積有限的小型表面設計的緊湊型版本
QrEncoding.RMQRCode 針對狹長型標籤形狀優化的矩形微型 QR 碼 (rMQR)

QrType 為唯讀內容,反映掃描器在圖像中偵測到的內容。 其價值並不取決於 QR 碼的生成方式。


QrType 的常見使用情境有哪些?

  • 物流與運送:偵測標籤上是否載有標準 QR 碼或緊湊型 Micro QR 碼,並將其分別導向正確的解析流程。
  • 文件處理:在提取資料進行記錄比對之前,驗證掃描文件是否符合預期格式。
  • 多格式資訊站:單一站點即可接收不同格式的 QR 碼,並將其分別發送至相應的處理程序,無需人工干預。
  • 稽核與合規:將符號類型與解碼值一併記錄,以建立跨批次輸入格式的可驗證紀錄。
  • 品質保證:驗證生成的 QR 碼掃描後是否顯示為預期類型,以確認輸出符合規格。

有關偵測 QR 碼類型後讀取資料的更多資訊,請參閱《讀取 QR 碼值指南》及完整的 IronQR 功能集

常見問題

IronQR 中的 QrResult.QrType 用途為何?

IronQR 中的 QrResult.QrType 用於偵測掃描 QR 碼的符碼類型,讓您的 C# 應用程式能進行基於格式的智慧型處理。

如何使用 IronQR 讀取 QR 碼類型?

若要使用 IronQR 讀取 QR 碼類型,您可以透過 QrImageInput 物件呼叫 QrReader.Read() 方法。這將讓您存取 QrResult.QrType,該屬性會提供關於所掃描 QR 碼特定類型的資訊。

在 C# 應用程式中,為何辨識 QR 碼類型如此重要?

在 C# 應用程式中,偵測 QR 碼類型至關重要,因為這能讓開發人員根據 QR 碼的格式進行智慧型處理,確保適當的處理與資料擷取。

IronQR 能否處理不同的 QR 碼符碼?

是的,IronQR 能透過 QrResult.QrType 識別並精確處理各類 QR 碼符碼,從而支援多種 QR 碼符碼。

在掃描 QR 碼的過程中,QrReader.Read() 扮演什麼角色?

QrReader.Read() 是 IronQR 中的方法,用於從 QrImageInput 掃描 QR 碼,讓您能夠取得 QR 碼類型及其他相關資訊,以便進行後續處理。

IronQR 是否支援處理多種 QR 碼類型?

是的,IronQR 允許您處理多種 QR 碼類型,透過 QrResult.QrType 屬性來識別並根據各 QR 碼的符碼系統進行處理。

在 C# 中使用 IronQR 讀取 QR 碼有哪些優勢?

在 C# 中使用 IronQR 讀取 QR 碼,可帶來諸如精準偵測 QR 碼類型、基於格式的智慧處理,以及與 C# 應用程式無縫整合等優勢。

IronQR 如何提升 QR 碼處理效率?

IronQR 透過提供 QrReader.Read() 和 QrResult.QrType 等工具,提升 QR 碼處理效率,這些工具能簡化您在 C# 專案中識別與處理各種 QR 碼類型的流程。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

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

還在往下捲動嗎?

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