跳過到頁腳內容
與其他組件的比較

Barkoder SDK 與 IronBarcode:C# 條碼庫對比

Barkoder SDK 幾乎出現在所有"2026 年最佳條碼 SDK"的評選中,與 ZXing、Dynamsoft、Scandit 和IronBarcode一起列入比較矩陣。 開發人員在評估 .NET 專案的條碼解決方案時,會在研究初期就遇到它——他們了解到 MatrixSight、DeBlur 模式、多條碼檢測和 DPM 支持,並發現它確實很有吸引力。 然後他們搜尋 NuGet。 零結果。 條碼 SDK 沒有 .NET 套件,沒有 C# API,也沒有官方的 .NET 專案路徑。 這項比較解釋了 Barkoder 究竟是什麼,它在其原生領域有哪些優勢,以及IronBarcode如何滿足 .NET 開發人員的相同需求。

條碼 SDK 簡介

Barkoder 是一款基於 C/C++ 處理核心的商業條碼掃描 SDK,並封裝了適用於 iOS 和 Android 的原生 SDK。 它面向需要即時攝影機掃描的行動開發人員——這種掃描方式類似於倉庫工人用手機進行的掃描,或是現場技術人員用平板電腦進行的掃描。 此分銷模型完全體現了這一目標。

該 SDK 透過 CocoaPods 分發給 iOS 用戶,提供 Swift 和 Objective-C API;透過 Maven 分發給 Android 用戶,提供 Kotlin 和 Java API;並透過官方外掛程式分發給混合行動用戶,支援 React Native、Flutter、Cordova 和 Capacitor。 沒有 NuGet 套件。 沒有 C# 綁定。 沒有受支援的進入 .NET 專案的路徑。

該公司提供由社區維護的 Xamarin 和 MAUI 綁定項目,但這些並非官方產品,Barkoder 不提供生產支持,也不會與主 SDK 同步更新。 在生產環境的 .NET 應用程式中,依賴社群綁定來實現關鍵的條碼工作流程會帶來重大的技術風險。 對於任何嚴肅的 .NET 部署而言,它們都不是現實的選擇。

Barkoder SDK 的主要架構特性:

-行動優先架構:專為 iOS 和 Android 相機管道設計; 所有處理均在設備端透過 C/C++ 核心完成。 -沒有 .NET SDK:沒有 NuGet 套件; 在 NuGet.org 上搜尋"barkoder"返回零結果 -不支援條碼產生: Barkoder 是一個唯讀 SDK; 它不具備產生或編碼條碼的功能。 -不支援PDF處理:此SDK不支援從PDF文件中讀取條碼、從檔案系統讀取影像或進行伺服器端文件工作流程。 -不支援伺服器部署:此 SDK 無法在 ASP.NET Core、Azure Functions、Docker 容器或任何伺服器端 .NET 執行環境中執行。 -僅限社群使用的 .NET 綁定: MAUI 綁定專案處於實驗階段,僅公開 SDK 的子集,且不提供生產環境支援。

巴科德建築的外觀

SDK 的 C/C++ 核心負責處理影像處理。 iOS 和 Android 封裝器透過平台原生 API 公開了這個核心功能。以下兩項皆不在 .NET 環境中運作-任何 C# 專案中都不存在 using Barkoder; 語句:

// iOS — Swift only, no C# equivalent
let barkoderView = BarkoderView(frame: frame)
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .code128
    config.decoder.deblurEnabled = true
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}
// Android — Kotlin only, no C# equivalent
val barkoderView = BarkoderView(context)
barkoderView.config = BarkoderConfig("LICENSE_KEY")
barkoderView.config.decoder.decoderType = DecoderType.Code128
barkoderView.config.decoder.deblurEnabled = true
barkoderView.startScanning { result ->
    println(result.textualData)
}

在徹底放棄 Barkoder 之前,值得肯定它有哪些優點。 它之所以能在評測中佔有一席之地,是因為它具備真正的實力。 MatrixSight 和 DeBlur Mode提供專有的損壞復原技術,可讀取物理損壞、印刷品質不佳或在光線不足的情況下拍攝的條碼。 多條碼偵測功能可同時解碼單一攝影機畫面中的多個條碼,使倉庫工人能夠一次掃描整個貨架。 DPM(直接零件標記)掃描支援 DataMatrix 和其他格式,包括雷射蝕刻和點陣噴丸配置,而大多數通用庫都無法很好地處理這些配置。 高密度格式支援包括 PDF417、Aztec 和其他 2D 格式,在行動相機上具有很高的精確度。

了解 IronBarcode

IronBarcode 是一個原生 .NET 函式庫,涵蓋了所有 .NET 環境下的完整條碼工作流程-讀取和產生。 它在功能上等同於 Barkoder 在 .NET 平台上的功能,並增加了一些僅在伺服器和桌面環境中才有意義的附加功能。

IronBarcode 透過 NuGet 安裝,並完全在本地運行。 條碼操作期間不會進行任何網路通話。 它可在實體隔離環境、Azure Functions、Docker 容器、AWS Lambda 以及從 .NET Framework 4.6.2 到 .NET 9 的所有 .NET 執行階段環境中執行。靜態 API 模型意味著無需管理掃描器實例,無需追蹤生命週期,也無需擔心並發呼叫帶來的線程安全問題。

IronBarcode的主要特點:

-全面支援 .NET:支援 .NET Framework 4.6.2+、.NET 6、7、8 和 9; 可在 Windows、Linux、macOS、Docker、Azure 和 AWS 上執行 -讀取與產生:支援從檔案、串流和 PDF 讀取條碼,並支援 50 多種格式的條碼產生。 -靜態 API 設計: BarcodeReader.Read()BarcodeWriter.CreateBarcode() 是靜態調用,無需管理任何有狀態實例。 -基於機器學習的錯誤修正:基於機器學習的影像預處理流程可處理損壞、劣化和低品質的條碼 -原生 PDF 支援:直接從 PDF 文件讀取條碼,無需中間影像擷取 -完全整合 .NET 生態系統:相容於 ASP.NET Core 依賴注入、async/await、中介軟體和託管模式

功能比較

下表列出了 條碼 SDK 和IronBarcode之間的根本差異:

特點 條碼 SDK IronBarcode
.NET / C# 支持 完整版 — 所有 .NET 運行時
NuGet套件 是的 — IronBarcode
條碼讀取 是的——手機相機 是的——文件、串流媒體、PDF
條碼生成 完整版 — 50 多種格式
PDF處理 原生語言
伺服器端部署 完整版 — ASP.NET Core、Azure、Lambda、Docker
定價 行動 SDK 許可 一次性永久費用 749 美元起

詳細功能比較

特點 條碼 SDK IronBarcode
閱讀
條碼損壞恢復 MatrixSight / DeBlur ML糾錯,ReadingSpeed.ExtremeDetail
多條碼檢測 是的——相機畫面 ExpectMultipleBarcodes = true
DataMatrix/DPM 支持 是的 — BarcodeEncoding.DataMatrix
QR 圖碼讀取
PDF417
阿茲特克
Code128、Code39、EAN 是的-超過50種格式
自動格式偵測
世代
條碼生成 完整版 — 所有格式
二維碼生成 QRCodeWriter.CreateQrCode()
二維碼上的標誌/品牌標識 AddBrandLogo()
平台
.NET / C# 全文
iOS(原生) 是 (主要) 透過 .NET MAUI
Android(原生) 是 (主要) 透過 .NET MAUI
Windows / Linux / macOS 全文
Docker/容器 全文
Azure 功能 全文
AWS Lambda 全文
實體隔離/離線 是的(設備上) 是的(完全本地化)
API 設計
異步/等待支持 不適用 全文
依賴注入 完整的 .NET 依賴注入集成
PDF文件輸入 BarcodeReader.Read("doc.pdf")
授權
許可模式 行動 SDK 許可 永久購買,一次性購買
價格(入場費) 聯絡銷售人員 $749 起(精簡版)

.NET 部署模型

Barkoder SDK 和IronBarcode之間最根本的差異不在於功能,而在於可用性。 .NET 生態系中不存在 Barkoder SDK。

條碼 SDK 方法

Barkoder 平台清單很明確:iOS Native(Swift / Objective-C)、Android Native(Kotlin / Java)、React Native、Flutter、Cordova、Capacitor。 不支援 .NET、C#、.NET MAUI、Xamarin、Windows、Linux 和 ASP.NET Core。 此SDK的架構是圍繞著行動裝置上的即時攝影機管道建構的。它沒有基於檔案的輸入模式、沒有串流API、沒有批次路徑,也沒有伺服器端執行模型。

缺少 .NET SDK 並非小問題,而是一個完全的障礙。 沒有 NuGet 套件可供安裝,沒有非同步 API 接口,沒有依賴注入集成,不支援 Azure 或 AWS Lambda,也沒有 PDF 處理功能。 社群版 MAUI 綁定僅公開了 SDK 的子集,並且不提供生產支援。

IronBarcode方法

IronBarcode 可透過 NuGet 使用單一指令進行安裝,並在啟動時使用許可證金鑰進行初始化:

// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
// NuGet: dotnet add package IronBarcode
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Read a barcode from an image
var results = BarcodeReader.Read("scan.png");
foreach (var result in results)
{
    Console.WriteLine($"Format: {result.Format}");
    Console.WriteLine($"Value: {result.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

' Read a barcode from an image
Dim results = BarcodeReader.Read("scan.png")
For Each result In results
    Console.WriteLine($"Format: {result.Format}")
    Console.WriteLine($"Value: {result.Value}")
Next
$vbLabelText   $csharpLabel

該庫完全在本地運行——沒有網路調用,沒有資料傳輸,沒有外部依賴。 它與 ASP.NET Core 依賴注入集成,支援 async/await,無需修改即可部署到 Docker、Azure Functions 和 AWS Lambda。 有關生產級 ASP.NET Core 集成,請參閱IronBarcode 文件

條碼損壞恢復

損壞條碼恢復功能是開發人員首先研究 Barkoder 最常見的原因。 Barkoder 的 MatrixSight 和 DeBlur 模式適用於物流和製造場景,在這些場景中,實體標籤會磨損、受潮或部分被遮蔽。

條碼 SDK 方法

Barkoder 的 DeBlur 模式在解碼嘗試之前會套用影像預處理-對比度增強、銳利化、旋轉校正。 此功能僅在移動攝影機處理流程中運作。此模式在掃描開始前於 SDK 圖層進行配置,相機視訊串流將持續處理。 沒有等效的基於檔案的路徑。

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.deblurEnabled = true
    config.decoder.decoderType = .code128
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}

IronBarcode方法

IronBarcode 透過 ReadingSpeed.ExtremeDetail 解決了相同的問題,它激活了一個多遍圖像分析流程——在嘗試解碼之前應用基於 ML 的損傷恢復、對比度增強、銳化和旋轉校正。 這適用於任何檔案、流或位元組數組輸入:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail,
    ExpectMultipleBarcodes = false,
};

var results = BarcodeReader.Read("worn-shipping-label.png", options);

if (results.Any())
{
    Console.WriteLine($"Recovered: {results.First().Value}");
}
else
{
    Console.WriteLine("Could not decode — image quality too low");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.ExtremeDetail,
    .ExpectMultipleBarcodes = False
}

Dim results = BarcodeReader.Read("worn-shipping-label.png", options)

If results.Any() Then
    Console.WriteLine($"Recovered: {results.First().Value}")
Else
    Console.WriteLine("Could not decode — image quality too low")
End If
$vbLabelText   $csharpLabel

ReadingSpeed.Balanced 可以處理大多數乾淨或輕微損壞的條碼,而且速度更快。 保留 ExtremeDetail 以應對 Balanced 失敗的情況——它雖然徹底,但速度明顯較慢。 有關讀取複雜條碼的更多指導,請參閱IronBarcode 讀取文件

多條碼檢測

多條碼偵測直接在兩個平台之間映射:Barkoder 可處理相機畫面中的多個條碼;IronBarcode可以處理文件或影像檔案中的多個條碼。

條碼 SDK 方法

Barkoder 的多條碼模式可以從單一相機幀中同時偵測和解碼多個條碼。 在倉庫環境中,一名工人將手機舉過貨架,一次接收所有條碼的數值。 這是在掃描開始前在 SDK 層級配置的:

// Android Kotlin — not usable from C#
barkoderView.config.decoder.multicodingEnabled = true
barkoderView.startScanning { results ->
    results.forEach { result ->
        println("${result.barcodeType}: ${result.textualData}")
    }
}

IronBarcode方法

在 .NET 伺服器端應用程式中,多條碼場景通常涉及一個文件——帶有發貨追蹤條碼和產品條碼的發票,或每頁包含多個項目的發貨清單。IronBarcode以 ExpectMultipleBarcodes = true 來處理這個情況,同樣的選項對影像和 PDF 也同樣有效:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
};

// Works on images and PDFs — single method call
var results = BarcodeReader.Read("shipping-manifest.pdf", options);

foreach (var barcode in results)
{
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}");
}
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

Dim options As New BarcodeReaderOptions With {
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = True
}

' Works on images and PDFs — single method call
Dim results = BarcodeReader.Read("shipping-manifest.pdf", options)

For Each barcode In results
    Console.WriteLine($"Page {barcode.PageNumber} | {barcode.Format} | {barcode.Value}")
Next
$vbLabelText   $csharpLabel

無需頁面提取,無需多次請求,無需每個條碼的網路開銷。 PDF 檔案可透過一次呼叫直接讀取。 有關多條碼和 PDF 讀取的更多信息,請參閱IronBarcode 文件

支援 DataMatrix 和高密度格式

DataMatrix 是工業和 DPM 用例的核心——Barkoder 強調這些格式適用於製造業、醫療保健和汽車垂直行業。

條碼 SDK 方法

Barkoder 支援對雷射蝕刻和點陣標記進行 DPM 配置的 DataMatrix 讀取。 該 SDK 還支援 PDF417、Aztec 和其他高密度 2D 格式,在移動相機上具有很高的精度。 所有這些操作都在 iOS 或 Android 的相機處理流程中進行:

// iOS Swift — not usable from C#
barkoderView.config = BarkoderConfig(licenseKey: "LICENSE_KEY") { config in
    config.decoder.decoderType = .dataMatrix
}
barkoderView.startScanning { result in
    print(result.textualData ?? "No result")
}

Barkoder 不會產生 DataMatrix 或任何其他格式的條碼。 這是一個只讀SDK。

IronBarcode方法

IronBarcode 可原生讀取和產生 DataMatrix 資料。 在讀取方面,ReadingSpeed.ExtremeDetail 能夠處理雷射蝕刻 DPM 標記典型的低對比度和粗糙邊緣。 在生成方面,BarcodeWriter.CreateBarcode() 產生用於建立零件標籤的 DataMatrix:

using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
using IronBarCode;

IronBarCode.License.LicenseKey = "YOUR-KEY";

// Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix)
    .SaveAsPng("part-label.png");

// Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500)
    .AddBrandLogo("company-logo.png")
    .SaveAsPng("branded-qr.png");

// Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
var results = BarcodeReader.Read("etched-part.png");
Imports IronBarCode

IronBarCode.License.LicenseKey = "YOUR-KEY"

' Generate a DataMatrix barcode for a part label
BarcodeWriter.CreateBarcode("PART-ID-20240315-A42", BarcodeEncoding.DataMatrix) _
    .SaveAsPng("part-label.png")

' Generate a QR code with brand logo
QRCodeWriter.CreateQrCode("https://parts.example.com/A42", 500) _
    .AddBrandLogo("company-logo.png") _
    .SaveAsPng("branded-qr.png")

' Read auto-detects format — DataMatrix, QR, Code128, PDF417, etc.
Dim results = BarcodeReader.Read("etched-part.png")
$vbLabelText   $csharpLabel

有關支援的格式和產生選項的完整列表,請參閱IronBarcode 條碼產生指南

API 對應參考。

由於沒有可供映射的 Barkoder C# 程式碼,下表概述了 Barkoder 在行動裝置上的功能與IronBarcode在 .NET 中實現相同結果之間的概念等效性:

條碼概念 IronBarcode等效物
使用許可證金鑰初始化 SDK IronBarCode.License.LicenseKey = "YOUR-KEY"
DeblurEnabled = true Speed = ReadingSpeed.ExtremeDetail
MultipleScanningEnabled = true ExpectMultipleBarcodes = true
DecoderType = .dataMatrix BarcodeEncoding.DataMatrix(讀取時自動偵測到)
startScanning(callback) BarcodeReader.Read("image.png") — 同步結果
result.textualData result.Value
result.symbology result.Format
MatrixSight損傷恢復 ReadingSpeed.ExtremeDetail 附機器學習預處理
相機影格分析 檔案/流/位元組數組輸入
設備端處理 完全本地通話-無需網路通話
無世代支持 BarcodeWriter.CreateBarcode() / QRCodeWriter.CreateQrCode()
不支援 PDF BarcodeReader.Read("document.pdf") — 原生
沒有伺服器部署 適用於 ASP.NET Core、Docker、Azure Functions 和 Lambda

當團隊考慮從 條碼 SDK 遷移到IronBarcode時

.NET 專案要求

最常見的場景很簡單:開發人員或團隊正在建立 .NET 應用程式(ASP.NET Core、Windows 服務、控制台工具、桌面應用程式),並在研究過程中遇到了 Barkoder。 他們閱讀了有關 MatrixSight、DeBlur 和多條碼檢測的內容,發現這些功能很有吸引力,然後發現這些功能都無法透過 C# 存取。 評估在 NuGet 平台結束。 在這種情況下,各團隊並沒有放棄 Barkoder; 他們從一開始就為自己的平台找到了合適的工具。IronBarcode是針對 Barkoder 在行動裝置上所提出的需求而開發的 .NET 解決方案。

伺服器端條碼處理工作流程

有些團隊最初會使用行動掃描應用程式(例如 Barkoder 或其他行動 SDK)來建立條碼處理工作流程原型,之後需要在伺服器端複製或擴展該工作流程。常見的例子包括透過 API 介面處理上傳的條碼影像、從文件管理系統中的 PDF 文件讀取條碼,或批次處理掃描的標籤存檔。 Barkoder 沒有伺服器端部署模型,因此這些工作流程都無法實現。IronBarcode使用相同的靜態 API 在 ASP.NET Core、Azure Functions、Docker 和AWS Lambda上處理所有這些問題。

條碼產生要求

為物流、庫存或合規性建立 .NET 應用程式的團隊經常發現,讀取條碼只是工作流程的一半。 產生條碼——列印標籤、在文件中嵌入二維碼、產生運輸清單——同樣重要。 Barkoder 的設計是唯讀的; 它沒有發電能力。 當專案範圍擴展到純粹的閱讀之外時,涵蓋工作流程兩端的函式庫就無需整合第二個依賴項。IronBarcode透過統一的 API 提供 50 多種格式的讀取和產生功能。

PDF文件處理

在 .NET 企業應用程式中,條碼經常出現在 PDF 文件中—例如發票、出貨清單、醫療記錄、合規文件等。 Barkoder 對這種工作流程毫無概念; 它專為行動裝置上的攝影機輸入而設計。需要讀取傳入 PDF 文件中的條碼、提取條碼資料以用於業務邏輯或驗證文件存檔中是否存在條碼的團隊,需要一個具有原生 PDF 支援的庫。IronBarcode直接從 PDF 讀取條碼,無需中間影像擷取。

定價和部署可預測性

Barkoder 的行動 SDK 定價是圍繞行動應用程式和分發模式構建的。 對於正在評估 .NET 環境工具的團隊來說,這種定價模式毫無意義——SDK 根本不在 .NET 中運作。 當團隊確定IronBarcode是其平台的合適工具時,定價模式很簡單:一次性永久許可證,不收取任何請求費用,也沒有數量限制,無論處理多少條碼。

常見的遷移考量

從移動相機輸入到基於檔案的輸入

已經實現了基於 Barkoder 的移動掃描原型,並且需要在 .NET 中複製該功能的團隊會發現,輸入模型從相機幀變為文件、流或位元組數組。IronBarcode接受相同資料的多種形式-檔案路徑字串、Streambyte[]System.Drawing.Image。 條碼處理邏輯的其他部分都相同:

// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
// All of these call the same underlying pipeline
var results1 = BarcodeReader.Read("scan.png");
var results2 = BarcodeReader.Read(imageStream);
var results3 = BarcodeReader.Read(imageBytes);
' All of these call the same underlying pipeline
Dim results1 = BarcodeReader.Read("scan.png")
Dim results2 = BarcodeReader.Read(imageStream)
Dim results3 = BarcodeReader.Read(imageBytes)
$vbLabelText   $csharpLabel

速度與準確性的權衡

Barkoder 的 DeBlur 模式在配置後始終處於啟動狀態,並在行動相機循環中運作。IronBarcode透過 ReadingSpeed 明確地揭露了準確性與速度之間的權衡。 對於大多數文件,ReadingSpeed.Balanced 是合適的。 對於 Balanced 解碼失敗的損壞或降級輸入,ReadingSpeed.ExtremeDetail 將應用完整的多遍機器學習管線。對於效能要求較高的工作流程,建議將批次結構設定為預設使用 Balanced,僅在解碼失敗時才回退到 ExtremeDetail

ASP.NET Core 中的非同步集成

IronBarcode 的 BarcodeReader.Read() 方法是同步的。 在處理並發請求的 ASP.NET Core 終端中,將呼叫包裝在 Task.Run() 中,以避免阻塞請求執行緒:

var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));
Dim results = Await Task.Run(Function() BarcodeReader.Read(imageBytes, options))
$vbLabelText   $csharpLabel

性能格式規範

IronBarcode 預設自動偵測條碼格式。 對於已知預期格式的高吞吐量場景,指定格式可以減少處理時間,因為它可以消除不匹配的格式測試。 當格式事先已知時,使用 BarcodeReaderOptions.ExpectedBarcodeFormats 來限制搜尋範圍。

IronBarcode的其他功能

除了與 Barkoder 的行動功能直接對應的功能外,IronBarcode 還提供了一些專門針對 .NET 伺服器和桌面環境的功能:

  • QR 碼Logo嵌入 QRCodeWriter.CreateQrCode().AddBrandLogo() 將品牌圖像加入產生的二維碼中心-這是行銷和包裝工作流程的常見需求。
  • PDF條碼讀取原生PDF輸入意味著無需中間影像擷取; 多頁PDF檔案一次呼叫即可掃描。 -在 PDF 上新增條碼IronBarcode可以產生條碼並將其新增至現有的 PDF 文件中,從而實現標籤和文件工作流程的自動化。 -批次影像讀取 BarcodeReader.ReadBulk() 可同時處理多個影像,實現高吞吐量批次操作 -自訂二維碼產生二維碼可自訂顏色、邊距和糾錯級別
  • GS1 和 HIBC 格式支援標準一維和二維條碼格式之外的醫療保健和供應鏈條碼標準

.NET相容性與未來準備

IronBarcode 支援 .NET Framework 4.6.2 和所有現代 .NET 版本(直至 .NET 9),並且正在積極開發以確保與預計於 2026 年推出的 .NET 10 相容。該程式庫可在 Windows、Linux 和 macOS 上運行,並已針對 Docker、Azure Functions 和AWS Lambda部署目標進行了測試。 隨著 .NET 生態系統持續朝向跨平台和雲端原生模式發展,IronBarcode 的完全本地執行模型(沒有雲端依賴性、沒有 API 金鑰管理、沒有網路延遲)與現代 .NET 應用程式架構的方向相符。

結論

Barkoder SDK 和IronBarcode的運作領域截然不同。 Barkoder 是一款專為 iOS 和 Android 構建的行動相機掃描 SDK,採用 C/C++ 處理核心,並透過 CocoaPods、Maven 和混合行動框架進行分發。IronBarcode是一個原生 .NET 程式庫,專為伺服器、桌面和雲端部署而構建,透過 NuGet 分發,並透過標準模式整合到 .NET 生態系統中。 這兩個庫並不在同一平台上競爭——它們在完全不同的執行環境下滿足相同的條碼處理需求。

對於需要即時相機掃描的 iOS 或 Android 行動應用程序,Barkoder 是理想的選擇。 其 MatrixSight 和 DeBlur 功能在無法控制影像品質的現場掃描場景中確實非常強大。 其多條碼檢測和 DPM 支援非常適合製造和物流移動工作流程。 如果您的團隊正在使用 React原生語言或 Flutter 為行動工作者建立使用裝置攝影機掃描實體物品的功能,那麼 Barkoder 應該納入評估範圍。

在建立需要條碼讀取、條碼產生或兩者兼具的 .NET 應用程式(ASP.NET Core API、Windows 服務、文件處理管道、桌面工具或雲端函數)時,IronBarcode 是正確的選擇。 它涵蓋了從單一 NuGet 套件實現的完整條碼工作流程,完全在本地運行,無需網路依賴,並與標準 .NET 模式集成,包括依賴注入、async/await 和雲端託管。 對於透過比較評測而選擇 Barkoder 的 .NET 開發人員來說,IronBarcode 提供了相同的核心功能——容錯讀取、多條碼檢測、DataMatrix 和高密度格式支援——這些功能是針對 .NET 平台原生實現的。

實際結論很簡單:如果你用 C# 寫程式碼,那麼 Barkoder 從來就不是一個可行的選擇。 評估其功能清單所花費的時間是有用的——它明確了你需要哪些功能——而IronBarcode在你的應用程式實際運行的環境中涵蓋了所有這些功能。

常見問題解答

Barkoder SDK是什麼?

Barkoder SDK 是一個 .NET 條碼庫,用於在 C# 應用程式中產生和讀取條碼。它是開發人員在為 .NET 專案選擇條碼解決方案時評估的幾個替代方案之一。

Barkoder SDK 和 IronBarcode 的主要差異是什麼?

IronBarcode 使用靜態、無狀態的 API,無需實例管理,而 Barkoder SDK 通常需要在使用前建立和設定實例。 IronBarcode 還提供原生 PDF 支援、自動格式偵測以及跨所有環境的單金鑰許可。

IronBarcode 的授權是否比 Barkoder SDK 更容易?

IronBarcode 使用單一授權金鑰,同時涵蓋開發和生產部署。與將 SDK 金鑰與執行時間金鑰分開的授權系統相比,這簡化了 CI/CD 管線和 Docker 配置。

IronBarcode 是否支援 Barkoder SDK 支援的所有條碼格式?

IronBarcode 支援超過 30 種條碼符號體系,包括 QR 碼、Code 128、Code 39、DataMatrix、PDF417、Aztec、EAN-13、UPC-A、GS1 等等。格式自動偵測功能意味著無需明確枚舉格式。

IronBarcode是否支援原生PDF條碼讀取?

是的。 IronBarcode 可以直接從 PDF 檔案讀取條碼,使用 `BarcodeReader.Read("document.pdf")` 方法,無需單獨的 PDF 渲染庫。每頁的讀取結果包括頁碼、條碼格式、數值和置信度評分。

IronBarcode 與 Barkoder SDK 相比,在大量處理方面有何不同?

IronBarcode 的靜態方法是無狀態的,且天然執行緒安全,因此可以直接使用 Parallel.ForEach,而無需進行執行緒層級實例管理。所有定價層級均無吞吐量上限。

IronBarcode支援哪些.NET版本?

IronBarcode 在單一 NuGet 套件中支援 .NET Framework 4.6.2+、.NET Core 3.1 以及 .NET 5、6、7、8 和 9。平台目標包括 Windows x64/x86、Linux x64 和 macOS x64/ARM。

如何在.NET專案中安裝IronBarcode?

透過 NuGet 安裝 IronBarcode:在程式包管理器控制台中執行“Install-Package IronBarCode”,或在命令列介面中執行“dotnet add package IronBarCode”。無需其他 SDK 安裝程式或運行時檔案。

與 Barkoder 不同,我可以在購買前評估 IronBarcode 嗎?

是的。 IronBarcode 的試用模式會傳回完整的解碼條碼值-只有產生的輸出影像才會有浮水印。您可以在購買前,用自己的文件測試讀取準確率。

Barkoder SDK 和 IronBarcode 的價格有什麼不同?

IronBarcode 的永久單開發者許可證起價為 749 美元,涵蓋開發和生產環境。定價詳情和大量許可選項請造訪 IronBarcode 授權頁面。無需單獨的運行時許可證。

從 Barkoder SDK 遷移到 IronBarcode 是否簡單?

從 Barkoder SDK 遷移到 IronBarcode 主要涉及將基於實例的 API 呼叫替換為 IronBarcode 的靜態方法、移除許可相關的樣板程式碼以及更新結果屬性名稱。大多數遷移工作都是減少程式碼,而不是增加程式碼。

IronBarcode 能產生帶有 logo 的二維碼嗎?

是的。 `QRCodeWriter.CreateQrCode().AddBrandLogo("logo.png")` 可以將品牌圖片原生嵌入二維碼中,並支援設定糾錯功能。此外,它還支援透過 `ChangeBarCodeColor()` 函數建立彩色二維碼。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我