USING IRONBARCODE 使用现代 C# 扫描库创建和读取 Xamarin 条形码图像 Jordi Bardia 已更新:2026年3月1日 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 Xamarin 条形码解决方案对于维护零售、物流和库存管理领域 Android 和 iOS 应用的移动开发人员来说仍然至关重要。 尽管微软已于 2024 年 5 月停止对 Xamarin 的官方支持,但仍有数百万个 Xamarin 应用仍在生产环境中运行,这些应用仍然需要可靠地创建、扫描和解码条形码。 IronBarcode是一个.NET条形码 SDK,只需几行 C# 代码即可处理条形码生成和条形码读取。 它可以作为条形码扫描器和生成器在 Android、iOS 和 Windows 平台上运行,并且在项目迁移时可以直接过渡到.NET MAUI 。 立即开始IronBarcode的免费试用,并将 Xamarin 条形码读取功能添加到您的项目中。 Xamarin 应用中的条形码扫描是如何工作的? Xamarin 应用中的条形码扫描的工作原理是从摄像头画面或设备上保存的文件中捕获条形码信息,然后将该数据传递给扫描库来解码编码信息。 从历史上看,许多 Xamarin 开发人员使用开源的 ZXing 库(Zebra Crossing),创建一个新的 ZXingScannerPage 实例,将其推入导航堆栈,并处理 OnScanResult 事件来处理条形码。 虽然这种方法在 Xamarin.Forms 中对基本的二维码扫描用例有效,但 ZXing 多年来没有得到有意义的错误修复,开发人员经常报告在光线较暗的情况下扫描条形码或解码 Data Matrix 等复杂格式时出现错误情况。 IronBarcode是一款采用不同方法的现代条形码扫描器 SDK。 IronBarcode不提供带有实时摄像头界面的专用扫描页面,而是处理 Xamarin 应用程序可以提供的任何来源,例如摄像头拍摄的图像、用户上传的文件、屏幕截图或 PDF 文档。 这使其成为 Xamarin 条形码项目的一个灵活的扫描库,开发人员需要完全控制用户界面和扫描过程。 BarcodeReader 类支持 30 多种条形码和二维码格式,SDK 包含内置的预处理过滤器,可提高在光线较暗或条形码损坏情况下的条形码扫描性能。 首先,请将IronBarcode NuGet包安装到您的 Xamarin 解决方案中: Install-Package BarCode BarCode 包可在NuGet上获取,并支持.NET Standard 2.0,因此与 Xamarin.Forms、Xamarin 原生项目和 Microsoft 的 MAUI 框架兼容。 核心 SDK 功能不需要额外的平台特定NuGet包或配置步骤,安装该包后即可立即在您的项目中进行测试。 如何在 Xamarin 应用中创建条形码和二维码? 使用 IronBarcode 的 BarcodeWriter 类,可以轻松生成用于在设备屏幕上显示、贴标签或进行数据交换的条形码。 下面的示例是 Xamarin 条形码应用程序的常见示例,这些应用程序需要生成一维和二维条形码。 using IronBarCode; // Barcode generation: create a Code 128 barcode for product scanning // Comment: BarcodeWriter handles all supported encoding formats var barcode = BarcodeWriter.CreateBarcode( "PROD-2025-XMR", // Value to encode in the barcode BarcodeWriterEncoding.Code128, // Barcode format for the scanner 400, 150 // Width and height in pixels ); // Customize the barcode: add visible text below the barcode image // Comment: this text helps users verify the encoded value barcode.AddBarcodeValueTextBelowBarcode(); barcode.SaveAsPng("product_barcode.png"); // Generate a QR code that users can scan with any mobile device camera // Comment: QR codes are ideal for URLs, contact data, and Wi-Fi config var qrCode = BarcodeWriter.CreateBarcode( "https://ironsoftware.com", BarcodeWriterEncoding.QRCode, 300, 300 ); // Configure margins and export the QR code as image lines of pixels qrCode.SetMargins(10); qrCode.SaveAsPng("qr_code.png"); using IronBarCode; // Barcode generation: create a Code 128 barcode for product scanning // Comment: BarcodeWriter handles all supported encoding formats var barcode = BarcodeWriter.CreateBarcode( "PROD-2025-XMR", // Value to encode in the barcode BarcodeWriterEncoding.Code128, // Barcode format for the scanner 400, 150 // Width and height in pixels ); // Customize the barcode: add visible text below the barcode image // Comment: this text helps users verify the encoded value barcode.AddBarcodeValueTextBelowBarcode(); barcode.SaveAsPng("product_barcode.png"); // Generate a QR code that users can scan with any mobile device camera // Comment: QR codes are ideal for URLs, contact data, and Wi-Fi config var qrCode = BarcodeWriter.CreateBarcode( "https://ironsoftware.com", BarcodeWriterEncoding.QRCode, 300, 300 ); // Configure margins and export the QR code as image lines of pixels qrCode.SetMargins(10); qrCode.SaveAsPng("qr_code.png"); $vbLabelText $csharpLabel 输出条形码图像 上面的代码演示了如何使用 IronBarcode 的条形码生成功能,只需几行代码即可完成。代码示例中的每条注释都阐明了每个步骤的目的。它接受要编码的数据、来自 BarcodeWriterEncoding 枚举的条形码格式以及输出尺寸。 IronBarcode 的 SDK 支持多种编码类型,包括 EAN-13、Code 39、QR 码、Data Matrix、PDF417 和 Aztec。 创建 GeneratedBarcode 实例后,您可以对其进行广泛的自定义:使用 ResizeTo() 调整尺寸,使用 SetMargins() 配置内边距,使用 AddAnnotationTextAboveBarcode() 添加可见标签。 您可以将生成的条形码导出为 PNG、JPEG、GIF、TIFF 或 PDF 格式,而无需为 Android 或 iOS 编写特定于平台的代码。 对于诸如向二维码添加徽标或自定义条形码颜色等高级功能,请浏览条形码生成教程和创建条形码示例页面。 如何读取和解码来自相机和文件源的条形码? IronBarcode作为 Xamarin 条形码解决方案,其最大价值在于能够读取设备摄像头拍摄的图像或从用户照片库中选择的图像中的条形码。 扫描过程采用一致的方法,可以处理从清晰的数字条形码到具有挑战性的现实世界相机拍摄的所有图像。 using IronBarCode; // Comment: read and decode barcodes from a camera-captured file var results = BarcodeReader.Read("scanned_photo.png"); // Iterate through each barcode scanning result foreach (var result in results) { // Comment: access the decoded barcode value and format type string value = result.Value; string type = result.BarcodeType.ToString(); // Display the scanned barcode data to the user on screen Console.WriteLine($"Type: {type}, Value: {value}"); } using IronBarCode; // Comment: read and decode barcodes from a camera-captured file var results = BarcodeReader.Read("scanned_photo.png"); // Iterate through each barcode scanning result foreach (var result in results) { // Comment: access the decoded barcode value and format type string value = result.Value; string type = result.BarcodeType.ToString(); // Display the scanned barcode data to the user on screen Console.WriteLine($"Type: {type}, Value: {value}"); } $vbLabelText $csharpLabel 读取条形码数据 使用现代 C# 扫描库创建和读取 Xamarin 条形码图像:图像 2 - 从上传的条形码读取的打印值 这段代码片段将一个文件传递给读取器,并循环遍历结果。 每个 BarcodeResult 实例都提供对条形码类型、解码文本、二进制数据、位置坐标和置信度评分的访问,为开发人员提供生产应用程序环境所需的一切。 有关支持的条形码类型的完整列表,请参阅条形码格式支持页面。 对于条码扫描性能至关重要的实际应用场景——例如在光线昏暗的仓库中进行扫描、读取移动传送带上损坏的条码,或解码单页上的多个条码,BarcodeReaderOptions 类允许您配置读取过程的各个方面: using IronBarCode; // Comment: configure the barcode reader for challenging conditions var options = new BarcodeReaderOptions { // Comment: balance between scanning speed and accuracy on the device Speed = ReadingSpeed.Balanced, // Expect multiple barcodes per page or camera capture ExpectMultipleBarcodes = true, // Limit scanning to specific barcode types for faster results ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.DataMatrix, // Auto-rotate barcodes captured at any camera angle AutoRotate = true, // Apply image filters to improve scanning in poor conditions ImageFilters = new ImageFilterCollection { new SharpenFilter(), // Sharpen blurry camera captures new ContrastFilter(1.5f) // Boost contrast for low light } }; // Comment: read barcodes from a sample image using configured options var results = BarcodeReader.Read("warehouse_scan.jpg", options); // Iterate and display results for the user foreach (var barcode in results) { // Output each decoded barcode value from the scanner Console.WriteLine($"Found: {barcode.Value}"); } using IronBarCode; // Comment: configure the barcode reader for challenging conditions var options = new BarcodeReaderOptions { // Comment: balance between scanning speed and accuracy on the device Speed = ReadingSpeed.Balanced, // Expect multiple barcodes per page or camera capture ExpectMultipleBarcodes = true, // Limit scanning to specific barcode types for faster results ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128 | BarcodeEncoding.DataMatrix, // Auto-rotate barcodes captured at any camera angle AutoRotate = true, // Apply image filters to improve scanning in poor conditions ImageFilters = new ImageFilterCollection { new SharpenFilter(), // Sharpen blurry camera captures new ContrastFilter(1.5f) // Boost contrast for low light } }; // Comment: read barcodes from a sample image using configured options var results = BarcodeReader.Read("warehouse_scan.jpg", options); // Iterate and display results for the user foreach (var barcode in results) { // Output each decoded barcode value from the scanner Console.WriteLine($"Found: {barcode.Value}"); } $vbLabelText $csharpLabel Speed 属性控制速度和准确性之间的权衡,对于大批量扫描,请使用 ReadingSpeed.Faster;对于难以检测的条形码,请使用 ReadingSpeed.Detailed。 ExpectBarcodeTypes 配置限制了扫描器 SDK 检查的格式,从而避免了误报错误结果并提高了性能。 自动旋转功能可自动校正设备摄像头以奇怪角度拍摄的条形码,而锐化滤镜和对比度滤镜可改善在昏暗条件下扫描条形码的效果。 开发人员还可以通过 CropArea 属性使用缩放式裁剪,将扫描器配置为专注于捕获页面的特定区域。 有关所有读取器配置的完整步骤,请参阅从图像中读取条形码的指南和BarcodeReaderOptions API 参考。 需要解码 PDF 文档中条形码的开发人员还应该查看PDF 条形码读取方法。 移动条码解决方案的最佳应用场景有哪些? Xamarin 条形码和二维码扫描解决方案支持各行各业的数十种应用场景。 以下是IronBarcode在移动设备上提供条形码扫描器和生成器并发挥其价值的最常见场景: *库存和仓库管理*:Android 和 iOS 设备用户扫描产品和货架上的条形码,实时跟踪库存,减少人工输入错误率,提高速度。 任何仓库管理应用都能从快速、可靠的条形码扫描中受益。 零售销售点:结账时扫描二维码可实现快速产品查找、优惠券兑换和移动支付处理,所有这些都会在应用程序屏幕上对用户可见。 扫描功能可处理一维和二维格式。 物流和运输:通过 Android 和 iOS 设备扫描包裹上的条形码,以验证路线和确认交付。 IronBarcode即使在扫描页面视图中,也能解码有折痕或部分遮挡的标签上的条形码。 活动签到**:一款 Xamarin 应用,可解码会议入口处的二维码,提供即时与会者验证——无需默认的纸质门票或手动帐户查找。 该应用程序读取每个代码只需不到一秒的时间。 *医疗保健:移动设备扫描病人腕带、药品标签和实验室样本上的条形码,以防止出现错误情况,并确保用户进行准确治疗。 应用程序中的每个阅读页面都可以根据特定的条形码类型进行定制。 IronBarcode为所有这些 Xamarin 条形码用例提供支持,它是一个跨平台的综合条形码扫描器,包括.NET Standard、 .NET Core和.NET MAUI。 对于在生产环境中维护 Xamarin 条形码解决方案的开发人员, IronBarcode提供持续支持、定期更新和清晰的许可选项。 当从 Xamarin 迁移到.NET MAUI列入计划时, IronBarcode可以无缝过渡,无需重写代码。 请参阅.NET MAUI条形码扫描器教程,获取分步示例。 微软发布的Xamarin 项目迁移指南提供了迁移到最新跨平台框架的详细步骤。 您还可以在 Stack Overflow 上的这篇文章中找到社区解决方案的有用链接,这篇文章涵盖了常见的 Xamarin 条形码问题;此外,Reddit 上的 Xamarin 开发者社区也提供了关于跨平台移动条形码读取方法的更多帖子讨论。 如何立即开始使用 Xamarin 条形码扫描? IronBarcode使 Xamarin 条形码生成和条形码扫描快速、可靠且对开发人员友好。 它支持 30 多种条形码格式,具有自动旋转和可自定义预处理等高级功能,以及流畅的 C# 接口,使代码行清晰易读。 无论解决方案是构建一个简单的二维码示例应用程序、处理 PDF 文档中的条形码,还是为 Android 应用程序或 iOS 应用程序构建完整的条形码阅读器, IronBarcode都能在一个文档齐全的库中处理所有这些。 API 中的每个函数都经过精心设计,旨在确保在生产应用程序环境中清晰易用。 在您的 Xamarin 项目中测试IronBarcode ,注册免费试用版。 准备好投入生产后,请探索许可选项,点击链接访问定价页面了解详情,起价为 749 美元。如需售后支持,开发人员可以通过许可附加组件页面自定义其服务范围。 立即开始使用 IronBarcode。 免费开始 常见问题解答 IronBarcode如何支持 Xamarin 应用开发? IronBarcode使 Xamarin 应用开发者只需几行 C# 代码即可创建、读取和解码条形码。它支持 Android、iOS 和 Windows 平台,确保移动应用中条形码功能的无缝运行。 IronBarcode可以同时用于条形码扫描和生成吗? 是的, IronBarcode既是条形码扫描器又是条形码生成器,使开发人员能够在 Xamarin 应用程序中轻松创建和读取条形码。 IronBarcode支持哪些条形码类型? IronBarcode支持多种条形码类型,包括 Code 128、Data Matrix 和 QR 码等,使其能够灵活满足不同的应用需求。 IronBarcode与.NET MAUI兼容吗? 是的, IronBarcode旨在平稳过渡到.NET MAUI,确保从 Xamarin 迁移时能够继续获得支持和功能。 IronBarcode对现有的 Xamarin 应用为何如此重要? 随着微软对 Xamarin 的官方支持结束, IronBarcode为在零售和物流等各个行业的现有 Xamarin 应用程序中维护条形码功能提供了一个可靠的解决方案。 IronBarcode如何帮助进行物流和库存管理? IronBarcode通过高效生成和解码条形码,简化跟踪和库存控制等流程,从而帮助进行物流和库存管理。 IronBarcode支持哪些平台? IronBarcode支持 Android、iOS 和 Windows 平台,使其成为跨平台条形码应用的多功能工具。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已发布2026年3月8日 为.NET应用程序创建条码专业SDK 一个全面的.NET条码SDK,用于QR码、GS1、数据矩阵等。支持.NET 6-10、Core和Framework。 阅读更多 已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多 已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码ASP.NET条形码扫描器:使用I...
已发布2026年3月8日 构建条码SDK C#: 使用一个库生成、读取和扫描条码 使用IronBarcode在C#中构建条码SDK功能。生成条码图像,从文件中扫描多个条码,并使用一个.NET库读取QR码。包括示例代码。 阅读更多
已更新2026年3月1日 .NET条形码字体:如何在不依赖字体的情况下生成和打印条形码 使用IronBarcode ,以现代化的方式在.NET中处理条形码字体。生成 Code 39 和 Code 128 条形码图像——无需依赖任何字体。提供免费试用版。 阅读更多