USING IRONBARCODE 使用强大的条码扫描器库在 Windows 应用程序中扫描条码 Jordi Bardia 已更新:一月 5, 2026 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 您不需要与复杂的相机驱动程序或无休止的权限循环搏斗,就能在 .NET MAUI 中使用条形码扫描器。 大多数开发人员一想到 "Barcode"(条形码),就会立即开始担心实时摄像机流的开销。 还有一条更好的途径。 通过使用 IronBarcode .NET 库,您可以直接从 JPEG 或 PNG 等图像文件中扫描条形码,完全避免了令人头疼的相机管理问题。 虽然本教程的重点是 Microsoft Windows,但完全相同的代码也可以在您的 Android 应用程序和 iOS 项目中运行。 开始免费试用,了解更多信息。 如何创建用于条形码扫描的 .NET MAUI 应用程序? 在 Visual Studio Code 或 Visual Studio 中设置 .NET MAUI 项目非常简单,本教程将使用 Visual Studio。 启动 Visual Studio 2022 或更高版本,选择创建一个新项目,然后选择 .NET MAUI App 模板。 输入您的项目名称并选择目标平台,本教程的重点是 Windows 部署。 Scanbot SDK 等解决方案需要在 MauiProgram.cs 中进行复杂的初始化,包括变量生成器配置和相机预览设置,与之不同的是,IronBarcode 无需特殊注册。 公共静态类 MauiProgram 与默认模板保持不变,使 .NET MAUI 应用程序的集成非常简单。 要安装 IronBarcode NuGet 软件包,您可以使用命令调板(VS 代码中的 Ctrl+Shift+P)或在 Visual Studio 的软件包管理器控制台中运行以下命令: ```shell :ProductInstall ``` 该单一 NuGet 软件包安装提供了条形码扫描、多条形码扫描和 QR 码识别所需的一切。 最新版本支持所有主流条形码格式,无需额外依赖,不像基于摄像头的扫描仪通常需要权限处理程序和 CameraView 控件配置。 要在生产环境中使用 IronBarcode,您需要申请许可证密钥。 您可以在 MauiProgram.cs 或 App.xaml.cs 构造函数中进行设置: ```cs IronBarCode.License.LicenseKey = "YOUR_IRONBARCODE_LICENSE_KEY"; ``` ### 处理 iOS 和 Android 的权限 使用基于图像的 .NET 库的主要好处之一是简化了权限模型。 传统的基于摄像头的扫描仪需要在 AndroidManifest.xml 中设置以下权限: * ``代码 *>`代码 在为>什么界面设计最适合 MAUI 条形码扫描仪? 简洁、实用的界面使用户能够选择包含 BarCode 的图像文件并查看扫描结果。 以下 XAML 为您的 .NET MAUI 应用程序创建了一个简单但有效的条形码扫描器用户界面: ```cs ``` 该布局提供了一个用于选择图像文件的按钮、一个用于显示所选图像的区域以及一个用于显示条形码检测结果的标签。 设计适用于所有 .NET MAUI 目标平台,同时保持 Windows 上的本地性能。 如何从图像文件实现 BarCode 检测? 在 MainPage.xaml.cs 中,您可以使用 async void OnAppearing 等生命周期方法来初始化设置或检查用户是否提供了必要的文件访问权限。 公共部分类 MainPage 包含扫描逻辑。 IronBarcode 的 BarcodeReader.Read 方法可处理所有复杂的条码检测,支持扫描 JPEG、PNG、GIF、TIFF 和 BMP 格式的条码。 以下是完整的实施方案: ```cs using IronBarCode; namespace BarcodeScanner; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private async void OnSelectImage(object sender, EventArgs e) { try { // Open file picker for image selection var result = await FilePicker.PickAsync(new PickOptions { FileTypes = FilePickerFileType.Images, PickerTitle = "Select a barcode image" }); if (result != null) { // Display the selected image var stream = await result.OpenReadAsync(); SelectedImageDisplay.Source = ImageSource.FromStream(() => stream); // Read barcodes from the image file var barcodes = BarcodeReader.Read(result.FullPath); // Display all detected barcode values if (barcodes.Count > 0) { string output = string.Join("\n", barcodes.Select(b => $"{b.BarcodeType}: {b.Value}")); ResultsLabel.Text = output; } else { ResultsLabel.Text = "No barcodes detected in image"; } } } catch (Exception ex) { ResultsLabel.Text = $"Error occurred: {ex.Message}"; } } } ``` ### 输出 !a href="/static-assets/barcode/blog/net-maui-scan-barcode/net-maui-scan-barcode-1.webp">.NET MAUI 使用强大的条码扫描器库在 Windows 应用程序中扫描条码:图片 1 - 扫描条码输出。 BarcodeReader.Read 方法可自动检测并解码图像文件中存在的所有条形码格式。每个结果都包括条形码类型、值和位置信息。 这种方法不需要像 Scanbot SDK 这样的基于摄像头的解决方案所需的摄像头权限、Android 和 iOS 特定配置或条形码检测事件处理。 ```cs private async void ProcessResults(BarcodeResults barcodes) { if (barcodes.Count > 0) { string msg = $"Found {barcodes.Count} barcodes."; // Use await DisplayAlert to show results to the user await DisplayAlert("Scan Success", msg, "OK"); } else { await DisplayAlert("No Results", "No barcodes were found in the image.", "OK"); } } ``` ### 使用 await DisplayAlert 提供用户反馈 在移动或桌面环境中,提供即时反馈至关重要。 扫描完成后,您可以使用 await DisplayAlert 方法显示模态对话框,而不是更新标签。 这样可以确保用户在继续阅读之前认可翻译结果。 如何扫描多个条形码并配置检测选项? 当您的图像文件包含多个条码时,IronBarcode 会自动检测所有条码。 当您知道预期的条形码类型时,为优化性能,请使用 BarcodeReaderOptions: ```cs using IronBarCode; // Configure options for scanning multiple barcodes var options = new BarcodeReaderOptions { ExpectMultipleBarcodes = true, ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128, Speed = ReadingSpeed.Balanced }; var barcodes = BarcodeReader.Read(imagePath, options); // Process each detected barcode foreach (var barcode in barcodes) { Console.WriteLine($"Found: {barcode.Value}"); } ``` ### 多种条形码扫描输出 !a href="/static-assets/barcode/blog/net-maui-scan-barcode/net-maui-scan-barcode-2.webp">.NET MAUI 使用强大的条码扫描器库在 Windows 应用程序中扫描条码:图像 2 - 扫描多个 BarCode 的输出。 指定 ExpectBarcodeTypes 可将检测重点放在相关格式上,从而提高扫描速度。 速度属性兼顾了准确性和性能; 对于原始图像,请使用 ReadingSpeed.Faster;对于有旋转或噪点的高难度扫描,请使用 ReadingSpeed.Detailed。 这种灵活性使 .NET MAUI 条码扫描器适用于各种不同的场景:读取产品代码的零售应用程序、处理装运标签的仓库系统或提取嵌入式 QR 代码的文档工作流。 为什么选择基于图像的条形码扫描? 基于图像的条形码扫描为 .NET MAUI 扫描条形码开发提供了明显的优势。 Scanbot SDK 和类似工具的重点是实时相机预览功能,而 IronBarcode 的方法提供了更直接的集成、跨平台的一致行为以及处理来自任何来源的现有图像文件的能力,包括扫描文档、电子邮件附件或用户上传。 对于 Android 和 iOS 部署,相同的代码无需修改即可运行,无需摄像头权限或特定平台配置。 ### 高级功能:AR 叠加与图像处理。 有些 SDK 专注于实时 AR 叠加(增强现实技术),以突出摄像机画面中的条形码,而 IronBarcode 则专注于静态图像的高速准确性。 这非常适合跨平台应用程序,在这些应用程序中,用户可能需要上传收据、运输标签或截图,而不是在现场 "实时 "扫描物品。 通过消除对实时相机馈送的需求,您可以减少电池消耗,并避免移动 AR 组件经常出现的 UI 闪烁。 ## 结论 使用 IronBarcode 构建 .NET MAUI 条码扫描器只需最少的代码,同时提供强大的条码检测功能。 基于图像文件的方法省去了相机权限、特定设备配置和复杂的初始化,从而简化了开发过程。 您只需专注于您的应用程序逻辑,而 IronBarcode 则负责扫描。 [完整的 API 文档](/csharp/barcode/object-reference/api/)涵盖了其他功能,包括 PDF 条码读取、批处理和高级图像过滤器。 准备好在您的跨平台 .NET MAUI 项目中实施条形码扫描了吗? [购买许可证](/csharp/BarCode/licensing/)用于生产,或通过免费试用探索完整的功能集。 立即开始使用 IronBarcode。 免费开始 常见问题解答 如何在 .NET MAUI 中创建条形码扫描器? 您可以使用 IronBarcode .NET 库在 .NET MAUI 中创建一个条形码扫描器,该库允许您直接从 JPEG 或 PNG 等图像文件中扫描条形码。这种方法绕过了管理实时摄像机流的复杂性。 我可以在 Android 和 iOS 上使用 IronBarcode 进行条码扫描吗? 是的,您可以在 Android 和 iOS 项目中使用相同的 IronBarcode 代码进行条码扫描。该库兼容这些平台,可实现无缝集成。 在 .NET MAUI 应用程序中使用 IronBarcode 有什么好处? 在 .NET MAUI 应用程序中使用 IronBarcode,无需处理复杂的相机驱动程序或权限,从而简化了条形码扫描。它允许直接从图像文件进行扫描,使扫描过程更简单、更高效。 在 .NET MAUI 中管理用于条形码扫描的相机流是否很困难? 由于相机驱动程序和权限循环,在 .NET MAUI 中管理用于条码扫描的相机流可能非常复杂。然而,使用 IronBarcode,您可以通过从图像文件扫描条形码来避免这些难题。 IronBarcode 是否支持扫描 QR 码以及条形码? 是的,IronBarcode 同时支持扫描条形码和 QR 码,为您应用程序中的各类代码扫描需求提供了多功能解决方案。 IronBarcode 是否仅限于 Windows 应用程序? 不,虽然本教程侧重于 Microsoft Windows,但 IronBarcode 也兼容 Android 和 iOS,因此是跨平台开发的灵活选择。 IronBarcode 支持哪些图像文件格式的扫描? IronBarcode 支持多种图像文件格式的扫描,包括 JPEG 和 PNG,这使得条形码扫描的用例范围更加广泛。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已更新一月 22, 2026 ASP.NET 条形码扫描器教程:C# 条形码生成器指南 Learn how to Scan Barcodes in ASP.NET using IronBarcode 阅读更多 已发布一月 21, 2026 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多 已发布一月 21, 2026 使用 IronBarcode 的 Xamarin 条形码生成器创建专业品质的条形码 Learn how to create professional-quality barcodes with the Xamarin Barcode Generator using IronBarcode. 阅读更多 ASP .NET 条形码生成:为您的 Web 应用程序构建条形码生成器.NET MAUI BarCode 扫描仪 SDK:...
已更新一月 22, 2026 ASP.NET 条形码扫描器教程:C# 条形码生成器指南 Learn how to Scan Barcodes in ASP.NET using IronBarcode 阅读更多
已发布一月 21, 2026 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多
已发布一月 21, 2026 使用 IronBarcode 的 Xamarin 条形码生成器创建专业品质的条形码 Learn how to create professional-quality barcodes with the Xamarin Barcode Generator using IronBarcode. 阅读更多