翻譯|使用教程|編輯:吉煒煒|2025-07-09 10:07:05.217|閱讀 134 次
概述:本文將通過一個(gè)簡(jiǎn)潔明了的示例,演示如何使用 C# 從圖像中讀取二維碼,并在桌面或服務(wù)器端項(xiàng)目中輕松實(shí)現(xiàn)識(shí)別功能。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
	 
 
二維碼已成為現(xiàn)代應(yīng)用的常見組成部分,廣泛應(yīng)用于用戶身份驗(yàn)證、移動(dòng)支付、商品包裝和活動(dòng)票務(wù)等場(chǎng)景。很多使用 C# 開發(fā)的系統(tǒng)需要從圖像或掃描件中提取二維碼信息,因此掌握二維碼識(shí)別技術(shù)顯得尤為重要。
為滿足這類需求,開發(fā)者需要一種既可靠又易于集成的二維碼解碼方式。本文將通過一個(gè)簡(jiǎn)潔明了的示例,演示如何借助 Spire.Barcode for .NET 使用 C# 從圖像中讀取二維碼,并在桌面或服務(wù)器端項(xiàng)目中輕松實(shí)現(xiàn)識(shí)別功能。
加入Spire技術(shù)交流QQ群(125237868),與更多開發(fā)者一起提升文檔開發(fā)技能。
首先我們需要使用支持二維碼解碼的 .NET 條碼庫(kù)。E-iceblue旗下Spire系列產(chǎn)品是國(guó)產(chǎn)化文檔處理和轉(zhuǎn)換領(lǐng)域的佼佼者,支持國(guó)產(chǎn)化信創(chuàng)。本指南采用 Spire.Barcode for .NET,該庫(kù)提供簡(jiǎn)潔API幫助開發(fā)者輕松從圖片文件和數(shù)據(jù)流讀取二維碼。
可通過NuGet包管理器安裝:
Install-Package Spire.Barcode
演示案例使用 Visual Studio 創(chuàng)建 C# 控制臺(tái)應(yīng)用:
通過庫(kù)提供的靜態(tài)方法 BarcodeScanner.Scan() 即可從圖片文件讀取二維碼。該方法接收?qǐng)D片路徑和 BarcodeType 作為參數(shù),返回匹配指定類型(如二維碼)的所有解碼結(jié)果。此方法支持 JPG、PNG、EMF 等圖片格式,適用于控制臺(tái)應(yīng)用、桌面應(yīng)用或處理上傳圖像的服務(wù)端程序。
using Spire.Barcode;
class Program
{
    static void Main(string[] args)
    {
        // 加載二維碼圖片
        string imagePath = @"C:\qr-code.png";
        // 條碼掃描器從圖片讀取二維碼
        string[] results = BarcodeScanner.Scan(imagePath, BarCodeType.QRCode);
        // 顯示解碼結(jié)果
        foreach (string result in results)
        {
            Console.WriteLine("二維碼內(nèi)容: " + result + "\n");
        }
    }
}
二維碼圖片及 C# 解碼效果:
  
 
											
在Web API或現(xiàn)代應(yīng)用中處理內(nèi)存圖像時(shí),常需操作 Stream 對(duì)象——例如處理文件上傳或讀取云存儲(chǔ)時(shí)。
BarcodeScanner.Scan() 方法直接支持 Stream 輸入,無需轉(zhuǎn)換即可輕松解碼二維碼:
using Spire.Barcode;
using System.IO;
class Program
{
    static void Main(string[] args)
    {
        using (FileStream fs = new FileStream(@"C:\qr-code.png", FileMode.Open, FileAccess.Read))
        {
            // 直接從數(shù)據(jù)流解析二維碼
            string[] results = BarcodeScanner.Scan(fs, BarCodeType.QRCode, false);
            foreach (string result in results)
            {
                Console.WriteLine("二維碼內(nèi)容: " + result);
            }
        }
    }
}
此方法特別適用于 WPF 或 ASP.NET Core 等需要內(nèi)存處理的應(yīng)用。 實(shí)際場(chǎng)景中可能因圖像質(zhì)量導(dǎo)致識(shí)別失敗,以下是提升解碼成功率的實(shí)踐方案:
通過 try-catch 塊優(yōu)化異常處理:
try
{
    string[] results = BarcodeScanner.Scan(imagePath, BarCodeType.QRCode);
    if (results.Length == 0)
    {
        Console.WriteLine("未檢測(cè)到二維碼");
    }
    else
    {
        Console.WriteLine("二維碼內(nèi)容: " + results[0]);
    }
}
catch (Exception ex)
{
    Console.WriteLine("解碼錯(cuò)誤: " + ex.Message);
}
有時(shí)需要獲取二維碼在圖片中的精確位置(用于裁剪或標(biāo)注),可通過 ScanInfo() 方法獲取邊界框:
ScanResult[] results = scanner.ScanInfo(imagePath, BarCodeType.QRCode);
foreach (BarcodeInfo result in results)
{
    Console.WriteLine("內(nèi)容: " + result.DataString);
    Console.WriteLine($"坐標(biāo): " + string.Join(",", result.Vertexes.Select(p => $"({p.X},{p.Y})")) + "\n");
}
該方案可同時(shí)獲取二維碼數(shù)據(jù)和位置信息。
效果演示:
  
 
																	
使用 Spire.Barcode for .NET 庫(kù)的 BarcodeScanner.Scan() 方法,幾行代碼即可實(shí)現(xiàn)從圖片或數(shù)據(jù)流讀取二維碼。
向 Scan() 方法傳入圖片路徑后,將自動(dòng)檢測(cè)所有支持類型。若需限定檢測(cè)類型(如僅 QR 碼或 Code128),傳入對(duì)應(yīng)的 BarCodeType 參數(shù)即可。
直接使用 BarcodeScanner.Scan() 方法即可掃描一張圖片上的多個(gè)二維碼。該方法支持自動(dòng)識(shí)別圖片上條碼的類型,并返回所有條碼的掃描結(jié)果。
使用 Spire.Barcode for .NET 庫(kù),僅需少量代碼即可在 C# 中實(shí)現(xiàn)二維碼讀取。該方案支持圖片和數(shù)據(jù)流解碼,完美適配桌面應(yīng)用、服務(wù)端及 WPF 程序,且配置簡(jiǎn)單性能優(yōu)異。
基于此基礎(chǔ),可進(jìn)一步探索二維碼生成、文檔集成和實(shí)時(shí)掃描等進(jìn)階應(yīng)用。
————————————————————————————————————————
關(guān)于慧都科技:
慧都科技是一家行業(yè)數(shù)字化解決方案公司,長(zhǎng)期專注于軟件、油氣與制造行業(yè)。公司基于深入的業(yè)務(wù)理解與管理洞察,以系統(tǒng)化的業(yè)務(wù)建模驅(qū)動(dòng)技術(shù)落地,幫助企業(yè)實(shí)現(xiàn)智能化運(yùn)營(yíng)與長(zhǎng)期競(jìng)爭(zhēng)優(yōu)勢(shì)。在軟件工程領(lǐng)域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運(yùn)維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權(quán)采購(gòu)、技術(shù)選型、個(gè)性化維保等服務(wù),幫助客戶實(shí)現(xiàn)技術(shù)合規(guī)、降本增效與風(fēng)險(xiǎn)可控。慧都科技E-iceblue的官方授權(quán)代理商,提供E-iceblue系列產(chǎn)品免費(fèi)試用,咨詢,正版銷售等于一體的專業(yè)化服務(wù)。E-iceblue旗下Spire系列產(chǎn)品是國(guó)產(chǎn)文檔處理領(lǐng)域的優(yōu)秀產(chǎn)品,支持國(guó)產(chǎn)化,幫助企業(yè)高效構(gòu)建文檔處理的應(yīng)用程序。
歡迎下載|體驗(yàn)更多E-iceblue產(chǎn)品
獲取更多信息請(qǐng)咨詢 ;技術(shù)交流Q群(125237868)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)