IRONSOFTWAREHOME
与其他组件比较

Scanbot SDK与IronBarcode: 摄像头管线与文件处理

Curtis Chau
Curtis Chau
Updated: 2026年4月26日

Scanbot SDK 使用设备摄像头打开全屏条形码扫描视图。 没有BarcodeScanner.Read(imagePath)方法。 扫描仪就是相机用户界面。 如果您的条形码位于服务器上的 PDF 发票中,Scanbot 就无法提供帮助。这并非批评,而是一种架构描述。 Scanbot SDK是一个摄像头控制,将原生iOS、Android和UWP/WinUI 3扫描API封装到取景器组件中。 ScanbotBarcodeSDK.MAUI——和产品类别——"条码SDK"——可能会导致开发人员评估其用于服务器端文档处理、WPF桌面应用程序或ASP.NET Core API。本文解释了这两个工具之间的架构差异以及每个工具的构建目的。

了解 Scanbot SDK

Scanbot SDK是由doo GmbH开发的商业条码扫描SDK。 其主要的.NET产品是net9.0-ios的包。 一个单独的包,Scanbot.BarcodeSDK.Windows(v7.0.0),涵盖Windows 10 1809+(x64)上的UWP和WinUI 3桌面应用程序,具有自动对焦相机。 所有支持的目标都与摄像头绑定——SDK无法在控制台应用程序、类库、ASP.NET Core项目或以macOS为目标的MAUI应用程序上解析。

Scanbot 的设计理念是以摄像头为核心。 它的整个 API 界面都围绕着实时取景器体验而设计:配置对象控制相机 UI 的外观、实时视频管道监视的格式以及如何向用户提供反馈。 该库提供了一个扫描组件,用于iOS、Android和Windows(UWP/WinUI 3)的消费者和企业应用。

  • **主要平台目标:**通过.NET MAUI支持iOS和Android,以及通过单独的Scanbot.BarcodeSDK.Windows包在Windows 10 1809+上支持UWP/WinUI 3; 不支持macOS MAUI目标 -**输入模型:**仅限实时设备摄像头画面——不存在文件路径、流或字节数组重载。
  • API设计:Value.Items集合的结果 -**相机用户界面功能:**实时取景器(带扫描区域叠加显示)、手电筒控制、宽高比设置、音频和触觉反馈以及方向锁定 -支持的格式: 20 多种一维格式(Code 128、EAN-13、UPC 等)和多种二维格式(QR、DataMatrix、PDF417、Aztec) -**无文件处理功能:**没有从已保存的图像文件、流或 PDF 文档中读取条形码的机制。 -不生成条形码: SDK 读取条形码; 它不会产生它们 -**授权模式:**年度固定费用; 无论扫描量如何,年度费用都是固定的。
  • **项目类型范围:**支持的NuGet包目标是摄像头绑定的运行时(MAUI iOS/Android和UWP/WinUI 3); 控制台、类库、ASP.NET Core、WPF、WinForms、Azure函数和Docker服务器主机不在该目标集合内

摄像机流水线架构

Scanbot 的架构需要在应用程序启动时进行初始化,然后调用摄像头进行扫描。 扫描方法需要一个BarcodeScannerScreenConfiguration,因为整个操作是由相机驱动的:

using ScanbotSDK.MAUI;
using ScanbotSDK.MAUI.Barcode;

// In MauiProgram.cs — initialization required before any scan
// ScanbotSDKMain.Initialize(new SdkConfiguration {
//     LicenseKey = "YOUR-SCANBOT-LICENSE-KEY",
//     LoggingEnabled = false
// }, builder);

// Configure scanner appearance and behavior
var configuration = new BarcodeScannerScreenConfiguration
{
    UseCase = new SingleScanningMode()
};

// Open full-screen camera scanner — UI takes over the entire screen
var result = await ScanbotSDKMain.Barcode.StartScannerAsync(configuration);

if (result.IsSuccess)
{
    foreach (var item in result.Value.Items)
        Console.WriteLine($"{item.Barcode.Format}: {item.Barcode.Text}");
}

SDK 实时处理实时视频帧,在取景器中突出显示检测到的条形码,并在条形码确认或用户取消时返回。 配置对象控制相机用户界面外观,而不是处理行为。 这就是完整的模型。

了解IronBarcode

IronBarcode是由Iron Software开发的商业.NET条形码读取和生成库。 它采用文件处理模型:输入源包括文件路径、流、字节数组和 PDF 文档。 没有相机用户界面,也不需要移动硬件。 该库可在所有.NET项目类型中运行。

IronBarcode的静态BarcodeReader.Read()方法接受调用代码提供的任何来源,无论该来源是如何产生的。 通过 HTTP 上传的文件、磁盘上的 PDF 文件、blob 存储中的图像或从 base64 字符串解码的字节数组都是等效的输入。 该库返回一组解码结果,每个结果都包含条形码值、格式和页码(如适用)。

-**输入源:**文件路径、流、字节数组和 PDF 文档(原生 PDF 解析,而非图像提取) **支持的项目类型:**控制台应用程序、 ASP.NET Core、WPF、WinForms、 Blazor Server、Azure Functions、AWS Lambda、Docker、Windows 服务、 .NET MAUI (所有目标平台,包括 Windows 和 macOS)以及.NET Framework 4.6.2 及更高版本。 **条形码生成:**生成条形码,格式可以是图像,也可以嵌入到 HTML 和 PDF 文档中。 -**格式支持:**支持 30 多种一维格式和 5 种二维格式,包括 QR 码、DataMatrix 码、PDF417 码、Aztec 码和 MaxiCode 码。 -**阅读增强功能:**基于机器学习的错误纠正和损坏条形码恢复,适用于难以读取的真实世界图像

  • 配置对象:BarcodeReaderOptions控制处理行为(速度、多条形码检测)而不是相机UI外观 -**授权模式:**一次性永久购买,分为四个级别(Lite749 美元, Plus1499 美元, Professional2999 美元,Unlimited 版 5999 美元); 无需每年续费

功能对比

下表列出了Scanbot SDK和IronBarcode之间的根本区别:

特征Scanbot SDKIronBarcode
主要用例移动设备实时摄像头条形码扫描文件和文档条形码读取和生成
输入模型设备摄像头画面文件路径、流、字节数组、PDF
平台支持iOS/Android MAUI和UWP/WinUI 3(摄像头绑定)所有.NET平台和项目类型
条形码生成
PDF条形码提取
许可模式年度固定费用一次性永久
实时摄像头界面是的——精致的取景器组件否(请使用 MediaPicker 进行照片拍摄)

详细功能对比

特征Scanbot SDKIronBarcode
阅读
从文件路径输入
来自流的输入
从字节数组输入
PDF条形码提取
实时相机取景器
实时帧扫描
自动格式检测
机器学习误差校正
条形码损坏恢复
一维格式计数20岁以上30+
二维格式计数QR码、DataMatrix码、PDF417码、Aztec码QR码、DataMatrix码、PDF417码、Aztec码、MaxiCode码
一代
条形码生成
平台
iOS 主界面
Android MAUI
Windows MAUI
macOS MAUI
UWP / WinUI 3(具有摄像头)是(单独的Windows包)
控制台应用程序
ASP.NET Core
Blazor服务器
WPF 应用程序
WinForms应用程序
Azure Functions
AWS Lambda
Docker / Linux
Windows 服务
.NET Framework 4.6.2+
许可
许可模式年度固定费用一次性永久
出版定价联系销售是的(749美元至5999美元)
批量定价不适用(固定费用)不适用(永久层级)

架构:相机流水线与文件处理

Scanbot SDK 和IronBarcode之间最显著的区别不是功能上的差距,而是两个库在理解其输入方式上的根本架构差异。

Scanbot SDK方法

Scanbot的架构围绕本机相机管道构建。当调用ScanbotSDKMain.Barcode.StartScannerAsync(configuration)时,库将控制权交给由设备上的本机相机API支持的全屏相机体验,无论是iOS、Android还是Windows。 该库持续处理实时视频帧,对每一帧应用条形码检测,并在确认条形码或用户关闭扫描器时将控制权返回给调用应用程序。 Scanbot 模型中没有静态图像的概念——输入始终是来自设备摄像头的实时视频帧流。

这种设计产生一个扫描体验,具有在取景器中实时突出显示的条码、可配置的扫描区域(带有长宽比控制)、手电筒切换、音频和触觉反馈以及方向锁定。 这些是为摄像头使用场景构建的UI功能。 妥协在于,该库与摄像头硬件和驱动它的操作系统密不可分。

IronBarcode方法

IronBarcode接受任何包含条形码的图像的二进制表示形式,并通过相同的静态方法返回解码结果,而不管图像是如何获得的:

// Install: dotnet add package BarCode
using IronBarCode;

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

// From a file path — works in any project type
var results = BarcodeReader.Read("barcode.png");
foreach (var result in results)
    Console.WriteLine($"{result.Value} ({result.Format})");

// From a PDF — reads all barcodes on all pages
var pdfResults = BarcodeReader.Read("invoice.pdf");
foreach (var result in pdfResults)
    Console.WriteLine($"Page {result.PageNumber}: {result.Value}");

// From a stream — useful for HTTP file uploads
using var stream = File.OpenRead("document.pdf");
var streamResults = BarcodeReader.Read(stream);

// With processing options
var options = new BarcodeReaderOptions { Speed = ReadingSpeed.Balanced };
var configuredResults = BarcodeReader.Read("image.png", options);

同一个调用可以在控制台应用程序、 ASP.NET Core控制器、Azure 函数、WPF 表单或 MAUI 页面中运行。 IronBarcode可以直接从 PDF 中读取条形码——不是从 PDF 中提取图像,而是直接解析 PDF 结构,在每一页上查找条形码。

平台和部署覆盖范围

Scanbot SDK 的平台范围由其NuGet包支持的目标平台决定。IronBarcode的作用域与.NET运行时本身相匹配。

Scanbot SDK方法

Scanbot MAUI包面向net9.0-ios。 一个仅声明这两个目标的.NET MAUI Application项目将会成功构建。 但是,当net9.0-maccatalyst或一个Windows MAUI目标被添加到TargetFrameworks时,Scanbot MAUI包引用在这些目标上无法解析。 这不是配置问题——MAUI包没有为Windows或macOS MAUI提供程序集。 Windows桌面由单独的Scanbot.BarcodeSDK.Windows包覆盖,用于具有自动对焦相机的UWP/WinUI 3应用。

结果是Scanbot的.NET包套件目标是MAUI移动和UWP/WinUI 3桌面,而不是服务器或非摄像头桌面项目类型。

IronBarcode方法

IronBarcode以单个NuGet包的形式分发,可在所有.NET项目类型和目标框架中正确解析:

# Same package, same API — works in ASP.NET Core, WPF, console, MAUI, Azure Functions
dotnet add package BarCode
SHELL

对于也面向 Windows 或 macOS 桌面的 MAUI 应用程序, IronBarcode通过单个软件包引用支持所有四个 MAUI 目标,无需平台条件配置。 构建面向iOS、Android和Windows的MAUI项目的团队可以添加IronBarcode一次,并在所有三个平台上使用BarcodeReader.Read(),无需修改。

MAUI集成模式

这两个库都可以在.NET MAUI项目中使用,但根据每个库的输入模型,集成模式有很大不同。

Scanbot SDK方法

在面向 iOS 和 Android 的 MAUI 项目中,Scanbot 提供了一个嵌入在应用程序导航流程中的原生相机取景器。 ScanbotSDKMain.Barcode.StartScannerAsync()调用显示全屏扫描器,当用户完成或取消扫描时,结果返回到调用页面。 这种集成为移动应用程序提供的扫描UI让人感觉像是平台的原生功能。

当项目规模扩大时,这种局限性就显现出来了。 添加macOS目标或Windows MAUI目标会在这些平台上打破构建(Windows桌面由单独的Scanbot.BarcodeSDK.Windows包处理,用于UWP/WinUI 3应用)。 添加需要条形码处理的无头服务器端组件需要一个单独的库——Scanbot依赖项无法跟随项目进入ASP.NET Core、Azure Functions或Docker。

IronBarcode方法

在MAUI项目中,IronBarcode工作在平台的MediaPicker上,以捕获照片并从结果图像中读取条形码。 扫描工作流程使用系统摄像头,而不是定制取景器:

// Works on iOS, Android, Windows, andmacOS MAUItargets
// NuGet: dotnet add package BarCode
using IronBarCode;

private async void ScanButton_Clicked(object sender, EventArgs e)
{
    var photo = await MediaPicker.CapturePhotoAsync();
    if (photo == null) return;

    using var stream = await photo.OpenReadAsync();
    using var ms = new MemoryStream();
    await stream.CopyToAsync(ms);

    var results = BarcodeReader.Read(ms.ToArray());
    foreach (var result in results)
        await DisplayAlert("Scanned", $"{result.Format}: {result.Value}", "OK");
}
C#

这项交易是实时取景器叠加。 用户看到的是系统相机界面,而不是自定义扫描区域,这对于只需对准拍摄即可满足的商业应用来说已经足够了。 .NET MAUI条形码扫描器教程涵盖了iOSAndroid目标的完整 MAUI 集成模式,包括权限处理和项目配置。

许可模式

Scanbot SDK 和IronBarcode使用的商业许可结构截然不同。

扫描机器人方法

Scanbot采用年度固定收费模式。 年度许可证费用不按扫描量计费。 这为拥有稳定纯移动端部署的团队提供了可预测的年度预算。 确切价格需联系 Scanbot 销售团队; 暂无已公布的数据。 每年续期义务意味着许可证是一项持续的运营成本。

IronBarcode方法

IronBarcode采用一次性永久购买模式,分为四个级别: Lite749美元, Plus版1499美元, Professional2999美元,Unlimited版5999美元。购买版本无需每年续费即可继续使用。 许可期限内的软件更新包含在内。 Iron Software网站上公布了产品定价,无需销售人员进行洽谈。

API 映射参考

评估这两个库架构差异的团队会发现此映射有助于理解概念等效性:

Scanbot SDKIronBarcode
ScanbotSDKMain.Initialize(new SdkConfiguration { LicenseKey = "..." }, builder)IronBarCode.License.LicenseKey = "key"
new BarcodeScannerScreenConfiguration { UseCase = new SingleScanningMode() }new BarcodeReaderOptions()
ScanbotSDKMain.Barcode.StartScannerAsync(configuration)BarcodeReader.Read(path / stream / bytes)
result.IsSuccess检查results.FirstOrDefault() != null
result.Value.Items返回BarcodeReader.Read()的值
item.Barcode.Formatresult.Format(IronBarCode.BarcodeEncoding)
item.Barcode.Textresult.Value
BarcodeFormat.Code128BarcodeEncoding.Code128
BarcodeFormat.QrCodeBarcodeEncoding.QRCode
BarcodeFormat.Ean13BarcodeEncoding.EAN13
摄像头扫描区域/长宽比配置没有等效项——图像取景由 MediaPicker 处理
摄像头闪光灯/手电筒配置没有等效选项——请使用 MediaPicker 选项
仅摄像头输入文件路径、流、字节数组或 PDF
iOS/Android MAUI和UWP/WinUI 3所有.NET平台

当团队考虑从Scanbot SDK迁移到IronBarcode时

通常情况下,开发团队会根据多种因素来评估IronBarcode ,看它能否替代Scanbot SDK或作为其补充。

服务器端和后端处理

using Scanbot 构建的移动应用程序通常会与处理文档上传、批量作业或 API 端点的服务器端组件一起存在。 当服务器端组件需要进行条形码处理时(例如从上传的 PDF 中提取条形码、验证传入文档中的条形码值或处理图像附件中的条形码数据),Scanbot 就无法使用了。 该软件包无法在ASP.NET Core、Azure Functions、控制台应用程序或任何非 MAUI 项目中编译。 在这种情况下,团队会发现自己既要维护移动条形码依赖项,又要维护单独的服务器端条形码解决方案,或者评估IronBarcode是否可以用一个软件包来满足这两个角色。

桌面应用程序要求

MAUI 的价值主张通常是跨平台覆盖:一个代码库即可覆盖 iOS、Android 和 Windows。 当Windows MAUI目标进入路线图——无论是从初始需求还是作为后期添加——ScanbotBarcodeSDK.MAUI包在该目标上无法解析,因为Scanbot通过单独的UWP/WinUI 3包(Scanbot.BarcodeSDK.Windows)而不是通过MAUI Windows覆盖Windows。 希望在多目标MAUI项目中拥有单一Windows构建路径的团队,或需要无头Windows组件(如Windows服务)的团队,将无法从Scanbot的包套件中获得这点。 IronBarcode提供了一个在Windows MAUI目标上解析的单一包,并且也在无头桌面和服务器环境中运行。

PDF和文档工作流程

从实时扫描向文档自动化发展的应用会遇到 Scanbot 的功能瓶颈。 从PDF发票中读取条码,从扫描的运单图像中提取跟踪码,或从归档文档中处理条码数据,超出了Scanbot输入模型,该模型建立在实时摄像头流上。 IronBarcode可以原生处理所有这些基于文件的输入。 MAUI 移动应用程序中使用的同一个软件包可以在后台处理作业中从 PDF 文档中提取条形码,而无需任何额外的依赖项。

可预测的许可成本

每年的续费费用需要在每个续费周期进行重新评估。 对于最初以小规模移动部署方式使用 Scanbot,后来扩展到拥有更多用户或平台的更广泛部署的团队来说,随着规模的扩大,他们可能会发现年费不再那么划算。IronBarcode的一次性永久授权模式免除了续费义务。 进行许可证续期评估的团队通常会考虑一次性购买是否更符合他们的长期成本规划,尤其是在扩展的项目范围包括 Scanbot 本身就不涵盖的服务器端或桌面平台时。

常见迁移注意事项

从Scanbot SDK迁移到IronBarcode 的团队应该做好准备,应对过渡过程中出现的一些技术差异。

没有实时取景器等效物

Scanbot 的实时相机取景器(具有扫描区域叠加、连续检测和触觉反馈)在IronBarcode中没有直接的对应功能。 替换模式使用MAUI的MediaPicker.CapturePhotoAsync()打开系统相机,捕获照片,并返回图像以进行处理。 用户体验是照片拍摄流程,而不是连续扫描流程。 对于商业应用(库存、物流、文档处理),这种区别很少具有重要意义。 对于以实时叠加层为核心产品体验的消费者应用而言,这是一个真正的用户体验差异,在决定迁移之前应该对其进行评估。

事件回调模式直接返回

Scanbot的Value.Items集合的结果。 IronBarcode的BarcodeReader.Read()直接返回一个集合——没有带状态字段的包装对象。 成功检测从results.FirstOrDefault()的空检查。

格式枚举命名空间更改

Scanbot的BarcodeEncoding.Code128)包含类似成员,但类型不同,在不同命名空间中。 按枚举类型存储或比较格式值的代码需要更新类型引用。 基于BarcodeEncoding值。

Windows 构建附加组件

如果在迁移之前 Scanbot 软件包导致Windows MAUI构建失败,则将其删除即可解决这些失败。 添加IronBarcode后,请验证 MAUI 应用程序代码中是否正确处理了 Windows 特有的功能(文件选择对话框、本地文件路径、Windows 权限),因为这些功能与 iOS 和 Android 的文件访问模式不同。

IronBarcode的其他功能

除了本次对比中涵盖的核心场景之外, IronBarcode还提供了一些随着项目扩展而变得重要的功能:

-**条形码生成:**以图像文件、流或嵌入 HTML 和 PDF 文档中的内容形式,生成所有主流的一维和二维条形码。 -**多条形码文档处理:**一次调用即可读取多页 PDF 文档中每一页上的条形码,每个结果都包含其所在页码。 -**机器学习纠错:**从标准检测算法无法解码的损坏、部分遮挡或低对比度图像中恢复条形码 -**批量图像处理:**在一次操作中处理图像路径或流数组,实现高吞吐量的文档工作流程 -**条码读取器选项调优:**控制读取速度、多条码检测、格式过滤和图像预处理,以在特定用例中平衡吞吐量和准确性。

  • **iOS MAUI 集成:**全面支持使用 MediaPicker 模式在 iOS 主界面 应用程序中读取条形码
  • **Android MAUI 集成:**全面支持Android MAUI应用中的条形码读取,API 与 iOS 相同

.NET兼容性和未来准备情况

IronBarcode支持.NET 6、 .NET 7、 .NET 8 和.NET 9,以及.NET Framework 4.6.2 及更高版本。 该库会定期更新,与.NET 的发布节奏保持一致,确保与预计在 2026 年底发布的.NET 10 及未来版本兼容。 由于IronBarcode是一个文件处理库,而不是特定于平台的相机 SDK,因此它不依赖于移动操作系统 API 或硬件功能,这意味着它的兼容性范围会随着.NET生态系统的发展而扩大,而不是受限于移动平台支持周期。

结论

Scanbot SDK和IronBarcode占据了不同的产品类别,但共享"条形码SDK"这个标签。Scanbot是一个摄像头扫描组件,为iOS和Android(通过MAUI)和Windows(通过UWP/WinUI 3)提供实时取景器体验。 IronBarcode是一个文件和文档处理库,可以读取和生成各种.NET项目类型和部署目标的条形码。 比较的是范围和架构,而不是每个库在其预期领域内的质量。

Scanbot SDK在其定义的范围内表现出色。 对于用户将设备摄像头直接指向物理条形码并期待实时视觉反馈——零售、票务、仓库查询——Scanbot的摄像头管线和取景器组件专门为该交互模型而设计。 如果部署仅限于摄像头绑定目标(iOS、Android和UWP/WinUI 3 Windows),现场扫描体验是产品的中心,而年度统一费用适合预算,Scanbot是该用例的合理选择。

当条形码处理需求超出实时摄像头场景时, IronBarcode就显得尤为重要。 服务器端文档处理、接受文件上传的ASP.NET Core端点、Windows 或 macOS 上的桌面应用程序、由 Blob 存储触发的 Azure Functions、包含桌面平台的多目标 MAUI 项目以及批量 PDF 处理作业都属于IronBarcode的原生范围。 单个包安装时没有平台条件配置,无论代码是否在移动设备、服务器或桌面上运行,都提供相同的BarcodeReader.Read()调用。

对于既需要实时移动摄像头扫描又需要文件或服务器处理的团队来说,架构最简洁的解决方案是使用 Scanbot 处理移动摄像头 UI,而使用IronBarcode处理其他所有事情。 这种方法的代价是需要两个条形码依赖项和两份许可协议。 对于愿意接受系统摄像头而不是自定义取景器进行移动扫描交互的团队来说, IronBarcode仅凭一个软件包和一个许可证即可涵盖整个项目范围——从 MAUI 移动应用程序到服务器 API 和 Windows 桌面伴侣程序。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户