USING IRONBARCODE How to Scan Barcodes in an ASP.NET Application Jordi Bardia 已发布:九月 29, 2025 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 条形码扫描已成为现代网络应用程序中不可或缺的功能,为从库存管理系统到文档处理工作流程等各个方面提供支持。 无论您是在仓库中跟踪产品、在活动中处理门票,还是将纸质文档数字化,在您的 ASP.NET Web 应用程序中实施可靠的条形码扫描都可以显著提高效率并减少错误。 IronBarcode 已成为面向 ASP.NET 和 Web 开发人员的首选 C# 条形码读取器库,为读取和生成条形码提供了强大而简单的解决方案。 与其他需要复杂配置或难以处理真实图像的 ASP.NET 条形码扫描器库不同,IronBarcode 能够可靠、自信地提供准确的条形码扫描结果。 其跨平台兼容性确保您的 Web 应用程序无论部署在 Windows、Linux 还是云容器上都能无缝运行,而其机器学习驱动的条形码检测功能,即使是最具挑战性的条形码图像,也能通过将其转换为机器可读格式来自信地处理。 如何在 ASP.NET 中将 IronBarcode 设置为条形码读取器? 在 .NET 项目中开始使用 IronBarcode 只需几分钟。 该库同时支持 ASP.NET Core 和传统的 ASP.NET MVC 应用程序,使其能够灵活应用于各种类型的项目。 首先,使用 NuGet 包管理器控制台安装 IronBarcode: Install-Package BarCode 或者,您也可以通过 Visual Studio 的 NuGet 程序包管理器 UI 进行安装,方法是搜索"IronBarCode"并单击"安装"。 该软件包会自动管理所有依赖项,确保顺利集成。 有关详细的安装指导,请查看IronBarcode 安装指南。 安装完成后,将必要的 using 语句添加到您的 C# 条形码读取器文件中: using IronBarCode; using IronBarCode; Imports IronBarCode $vbLabelText $csharpLabel 通过简单的导入操作,您可以访问 IronBarcode 全面的条形码读取和生成功能。 该库支持 30 多种条形码格式,包括 QR 码生成、Code 128、Code 39、Data Matrix 和 PDF417,几乎涵盖了生产环境中所有条形码类型。 根据微软关于 ASP.NET 的文档,正确的包管理对于维护安全高效的 Web 应用程序至关重要。 如何实现文件上传条形码扫描? 在 ASP.NET Web 应用程序中,最常见的条形码扫描场景是用户在 Web 浏览器中上传包含条形码的图像文件。 该方案非常适合处理发票、货运标签或任何带有嵌入式条形码的文档。 在 ASP.NET 视图中使用div元素创建一个简单的 HTML 表单: <form method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="barcodeFile">Select Barcode Image:</label> <input type="file" name="barcodeFile" id="barcodeFile" accept="image/*,.pdf" class="form-control" /> </div> <button type="submit" class="btn btn-primary">Scan Barcode</button> </form> <div id="results"> @ViewBag.BarcodeResult </div> <form method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="barcodeFile">Select Barcode Image:</label> <input type="file" name="barcodeFile" id="barcodeFile" accept="image/*,.pdf" class="form-control" /> </div> <button type="submit" class="btn btn-primary">Scan Barcode</button> </form> <div id="results"> @ViewBag.BarcodeResult </div> IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 现在实现后端控制器,使用 ASP.NET 条形码读取器处理上传的文件: [HttpPost] public async Task<IActionResult> ScanBarcode(IFormFile barcodeFile) { if (barcodeFile != null && barcodeFile.Length > 0) { using (var stream = new MemoryStream()) { await barcodeFile.CopyToAsync(stream); stream.Position = 0; // Read barcode from the uploaded image var results = BarcodeReader.Read(stream); if (results.Any()) { ViewBag.BarcodeResult = string.Join(", ", results.Select(r => $"{r.BarcodeType}: {r.Text}")); } else { ViewBag.BarcodeResult = "No barcodes found in the image."; } } } return View(); } [HttpPost] public async Task<IActionResult> ScanBarcode(IFormFile barcodeFile) { if (barcodeFile != null && barcodeFile.Length > 0) { using (var stream = new MemoryStream()) { await barcodeFile.CopyToAsync(stream); stream.Position = 0; // Read barcode from the uploaded image var results = BarcodeReader.Read(stream); if (results.Any()) { ViewBag.BarcodeResult = string.Join(", ", results.Select(r => $"{r.BarcodeType}: {r.Text}")); } else { ViewBag.BarcodeResult = "No barcodes found in the image."; } } } return View(); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 该实现通过将上传的文件复制到内存流来处理该文件,然后使用 IronBarcode 的 BarcodeReader.Read 方法从图像中提取所有条形码。 该方法可自动检测条形码格式并返回详细结果,包括条形码类型和解码文本。 IronBarcode 可以处理各种图像格式,包括 JPEG、PNG、GIF、TIFF、BMP 甚至PDF 文档,无需编写特定格式的处理代码。 这种多功能性使其成为Stack Overflow 条形码实现主题中讨论的文档处理场景的理想选择。 示例图像 如何在 ASP.NET 应用程序中扫描条形码:图 8 - 已准备好扫描的 Code128 条形码 输出 如何在 ASP.NET 应用程序中扫描条形码:图 5 - 带有条形码类型和文本的代码输出 如何构建用于条形码或二维码扫描的 REST API? 现代 ASP.NET Web 应用程序通常需要通过 REST API 公开条形码扫描功能,从而能够与移动应用程序、SPA 或第三方服务集成。 以下是如何使用 ASP.NET Core 创建强大的条形码扫描器 API: [ApiController] [Route("api/[controller]")] public class BarcodeController : ControllerBase { [HttpPost("scan")] public IActionResult ScanBarcode([FromBody] BarcodeRequest request) { try { // Convert base64 string to byte array byte[] imageBytes = Convert.FromBase64String(request.ImageBase64); // Read barcodes from the image var results = BarcodeReader.Read(imageBytes); var response = results.Select(r => new { type = r.BarcodeType.ToString(), value = r.Text, position = new { x = r.Points.Select(b => b.X).Min(), y= r.Points.Select(b => b.Y).Min(), r.Width, r.Height } }).ToList(); return Ok(new { success = true, barcodes = response }); } catch (Exception ex) { return BadRequest(new { success = false, error = ex.Message }); } } } public class BarcodeRequest { public string ImageBase64 { get; set; } } [ApiController] [Route("api/[controller]")] public class BarcodeController : ControllerBase { [HttpPost("scan")] public IActionResult ScanBarcode([FromBody] BarcodeRequest request) { try { // Convert base64 string to byte array byte[] imageBytes = Convert.FromBase64String(request.ImageBase64); // Read barcodes from the image var results = BarcodeReader.Read(imageBytes); var response = results.Select(r => new { type = r.BarcodeType.ToString(), value = r.Text, position = new { x = r.Points.Select(b => b.X).Min(), y= r.Points.Select(b => b.Y).Min(), r.Width, r.Height } }).ToList(); return Ok(new { success = true, barcodes = response }); } catch (Exception ex) { return BadRequest(new { success = false, error = ex.Message }); } } } public class BarcodeRequest { public string ImageBase64 { get; set; } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此条形码读取器 API 端点接受 base64 编码的图像,这是一种用于通过 HTTP 传输图像的标准格式。响应包含条形码值及其类型。 该实现遵循RESTful 最佳实践,确保与任何前端框架无缝集成。 以下 JavaScript 代码用于从 JavaScript 客户端调用此 API: async function scanBarcode(imageFile) { const base64 = await convertToBase64(imageFile); const response = await fetch('/api/barcode/scan', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ imageBase64: base64 }) }); const result = await response.json(); console.log('Scanned barcodes:', result.barcodes); } async function convertToBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => { // Remove the data URL prefix to get only the base64 string const base64 = reader.result.split(',')[1]; resolve(base64); }; reader.onerror = error => reject(error); reader.readAsDataURL(file); }); } async function scanBarcode(imageFile) { const base64 = await convertToBase64(imageFile); const response = await fetch('/api/barcode/scan', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ imageBase64: base64 }) }); const result = await response.json(); console.log('Scanned barcodes:', result.barcodes); } async function convertToBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onload = () => { // Remove the data URL prefix to get only the base64 string const base64 = reader.result.split(',')[1]; resolve(base64); }; reader.onerror = error => reject(error); reader.readAsDataURL(file); }); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这种 API 方法可以与现代 JavaScript 框架、移动应用程序无缝集成,并支持条形码扫描需要异步或批量操作的场景。 示例输入 如何在 ASP.NET 应用程序中扫描条形码:图 6 - 多个条形码 输出 如何在 ASP.NET 应用程序中扫描条形码:图 7 - API 响应 如何处理复杂的条形码图像? 在 ASP.NET Web 应用程序中,实际的条形码扫描经常会遇到图像不完美的情况:例如,拍摄角度不当、光线不足或条形码部分损坏等。 IronBarcode凭借其先进的图像处理能力,在这些场景中表现出色: var options = new BarcodeReaderOptions { // Balance speed vs accuracy Speed = ReadingSpeed.Balanced, // Specify expected barcode types for better performance ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128, // Enable automatic rotation correction AutoRotate = true, // Apply image filters for clarity ImageFilters = new ImageFilterCollection { new SharpenFilter(), new ContrastFilter(1.5f) }, // Use multiple threads for faster processing Multithreaded = true }; var results = BarcodeReader.Read("challenging-image.jpg", options); var options = new BarcodeReaderOptions { // Balance speed vs accuracy Speed = ReadingSpeed.Balanced, // Specify expected barcode types for better performance ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128, // Enable automatic rotation correction AutoRotate = true, // Apply image filters for clarity ImageFilters = new ImageFilterCollection { new SharpenFilter(), new ContrastFilter(1.5f) }, // Use multiple threads for faster processing Multithreaded = true }; var results = BarcodeReader.Read("challenging-image.jpg", options); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel BarcodeReaderOptions类提供了对条形码扫描过程的精细控制。 将"自动旋转"设置为"真"可以处理以任何角度拍摄的图像,而图像滤镜可以增强模糊或低对比度条形码的清晰度。 Speed 属性允许您根据具体的 ASP.NET 应用程序要求,在处理速度和准确性之间取得平衡。 对于大批量处理,启用多线程可以利用所有可用的 CPU 核心,从而显著提高性能。 这种方法符合 .NET 应用程序中图像处理的行业最佳实践。 结论及最佳实践 在 ASP.NET Web 应用程序中使用 IronBarcode 实现条形码扫描,可以将可能很复杂的任务转化为简单、易于维护的代码。 该库能够处理多种格式、处理不完美的图像、解码条形码,并在各个平台上提供一致的结果,使其成为企业应用程序的宝贵工具。 对于生产环境部署,请记住要实施适当的错误处理,验证上传文件的安全性,并考虑缓存经常扫描的条形码。 IronBarcode 的跨平台支持确保您的条形码扫描器解决方案能够在 Docker 容器和云环境中无缝运行,从而提供现代应用程序所需的灵活性。 浏览完整的API 文档,了解批量处理和PDF 条形码提取等高级功能。 准备好利用专业的条形码扫描功能彻底革新您的 ASP.NET 应用程序了吗? 立即开始免费试用,在生产环境中充分发挥 IronBarcode 的全部潜力。 常见问题解答 条形码扫描在 ASP.NET 应用程序中的主要用途是什么? 条形码扫描在 ASP.NET 应用程序中的主要用途是提升库存管理系统、处理活动门票和数字化纸质文件,从而提高效率并减少错误。 IronBarcode 如何在 ASP.NET 中实现条形码扫描? IronBarcode 通过提供可靠且高效的组件简化了 ASP.NET 中的条形码扫描过程,这些组件可以轻松集成到 Web 应用程序中,使开发人员能够快速实现扫描功能。 IronBarcode 可以扫描哪些类型的条形码? IronBarcode 支持扫描各种条形码格式,包括传统的线性条形码和现代的二维条形码,确保与多种应用兼容。 IronBarcode 可以处理文件处理中的条形码扫描吗? 是的,IronBarcode 非常适合文件处理工作流程,其中可以通过扫描嵌入的条形码来数字化和组织纸质文件。 IronBarcode 适合用于库存管理系统吗? IronBarcode 是库存管理系统的理想选择,因为它可以通过扫描条形码实现高效的产品跟踪,从而简化操作并减少错误。 集成 IronBarcode 如何改善活动门票处理? 通过集成 IronBarcode,活动门票处理变得无缝,因为它允许快速扫描门票条形码,从而在活动中实现快速准确的入场管理。 在 ASP.NET 项目中使用 IronBarcode 有哪些优势? 在 ASP.NET 项目中使用 IronBarcode 提供了多种优势,包括易于集成、支持多种条形码格式以及增强的应用程序性能,从而为条形码扫描需求提供了一个强大的解决方案。 IronBarcode 需要广泛的编码知识才能实现吗? 不,IronBarcode 被设计为对开发人员友好,使得在 ASP.NET 应用程序中实现条形码扫描功能变得简单,即使具有最少的编码知识。 IronBarcode 可以用于移动 Web 应用程序吗? 是的,IronBarcode 可以集成到移动 Web 应用程序中,允许随时随地进行条形码扫描,增强 ASP.NET 项目的多功能性。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已发布十二月 18, 2025 IronBarcode 与 Open Source Barcode Reader .NET 的比较 Learn how to read barcodes in C# using IronBarcode 阅读更多 已发布十二月 18, 2025 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多 已发布十月 19, 2025 How to Print Barcodes in Crystal Reports with VB.NET Generate and print barcodes in Crystal Reports using VB.NET. Step-by-step tutorial with IronBarcode SDK for reliable barcode integration. 阅读更多 IronBarcode vs. Open-Source Barcode Readers in .NETHow to Create a C# USB Barcode Scanner
已发布十二月 18, 2025 IronBarcode 与 Open Source Barcode Reader .NET 的比较 Learn how to read barcodes in C# using IronBarcode 阅读更多
已发布十二月 18, 2025 C# 中的数据矩阵生成器:IronBarcode 完整指南 数据矩阵生成器C#教程。了解如何使用IronBarcode创建ECC200数据矩阵条形码。简单的2D条码生成代码示例。 阅读更多
已发布十月 19, 2025 How to Print Barcodes in Crystal Reports with VB.NET Generate and print barcodes in Crystal Reports using VB.NET. Step-by-step tutorial with IronBarcode SDK for reliable barcode integration. 阅读更多