IronBarcode 操作指南 指定裁剪区域 如何在 C# 中定义条码裁剪区域以加快读取速度 Hairil Hasyimi Bin Omar 已更新:2026年1月10日 下载 IronBarcode NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 使用 IronSoftware.Drawing.Rectangle 定义裁剪区域,将 IronBarcode 的扫描区域限制在特定的图像区域,通过只关注相关区域,显著提高条码读取性能并减少错误。 <! -- 待办事项:在此处添加图片 --> <! -- --> <!--说明:说明代码概念的图表或截图 --> IronBarcode 最重要的功能之一是指定 裁剪区域。 此功能可使 IronBarcode 仅读取特定条形码或使用 IronSoftware.Drawing.Rectangle 对象在图像中通过裁剪区域指定的区域。 使用这一功能不仅能减少阅读错误,还能提高阅读效果。 在处理多页文档或条形码位置可预测的高分辨率图像时,这种技术尤其有价值。 在处理具有多个条形码或复杂背景的图像时,定义裁剪区域对于优化条形码读取速度至关重要。 通过限制扫描区域,可以实现比扫描整个图像快 5 倍的处理速度,同时还能减少非条形码元素带来的误报。 快速入门:定义和应用作物区域以更快地读取条形码 只需几秒钟即可创建裁剪矩形并将其导入 IronBarcode——无需额外设置,操作便捷。 了解使用BarcodeReaderOptions将扫描范围限制在特定图像区域是多么容易。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronBarcode PM > Install-Package BarCode 复制并运行这段代码。 var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) }); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronBarcode,免费试用! 免费试用30天 ### 最小工作流程(5 个步骤) 下载用于读取条形码的 C# 库 在图像中查找裁剪区域的坐标和大小 从坐标创建裁剪区域 使用Read方法检测并读取条形码 将裁剪区域对象传递给方法 如何查找图像中的裁剪区域坐标和尺寸? <! -- 待办事项:在此处添加图片 --> <! -- --> <!--说明:说明代码概念的图表或截图 --> 有很多方法可以找到图像中某一点的坐标。 一种方法是使用计算机上的 "画图 "应用程序加载图片。 要获取裁剪区域的第一个坐标,请将光标移动到首选的第一个位置,即Rectangle的左上角,然后从屏幕左下角的应用程序获取 x、y 坐标。 然后,找到第二个点,即Rectangle的右下角。 请参考下图以便更清楚地理解。 对于更高级的情况,您还可以考虑使用 GIMP 或 Photoshop 等图像编辑软件,它们提供了精确的像素坐标和测量工具。 有些开发人员喜欢使用在线坐标查找工具或创建简单的 HTML/JavaScript 实用程序,在图像悬停时显示鼠标坐标。 设置作物区域参考 我可以使用哪些工具来确定坐标? 然后可以将坐标值用作Rectangle对象的属性。 物体的宽度可以定义为x2 - x1 ,高度可以定义为y2 - y1 。 在处理条形码图像时,必须了解坐标是从左上角(0,0)开始,并随着向右(x 轴)和向下(y 轴)移动而增加。 确定坐标的几种方法包括 内置操作系统工具:Windows 画图,macOS 预览版 浏览器开发工具:检查网络图像上的元素 专业软件:Adobe Photoshop、GIMP 自定义实用程序:简单坐标查看器应用程序 IronBarcode的调试功能:导出带坐标叠加的已处理图像 如何根据坐标计算矩形尺寸? 有了两个角点后,计算尺寸就变得简单了。 矩形需要四个参数:x 坐标、y 坐标、宽度和高度。 以下是如何正确实例化作物区域: :path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.cs using IronBarCode; int x1 = 62; int y1 = 29; int x2 = 345; int y2 = 522; IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1); Imports IronBarCode Private x1 As Integer = 62 Private y1 As Integer = 29 Private x2 As Integer = 345 Private y2 As Integer = 522 Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2-x1, height:= y2-y1) $vbLabelText $csharpLabel 该坐标系统可与 IronBarcode 的 图像校正功能无缝配合,让您仅对图像的特定区域应用滤镜。 如何应用 CropRegion 和读取 BarCode? 一旦您定义了希望 IronBarcode 读取的 CropRegions,您就可以将该对象与其他设置一起作为属性之一应用到 BarcodeReaderOptions 中。 然后可以将其用作BarcodeReader.Read()方法中的参数。 以下代码片段展示了这一过程: BarcodeReaderOptions 接受哪些参数? BarcodeReaderOptions 类提供了对条码读取过程的全面控制。 除作物区域外,您还可以配置: 速度优化:使用速度设置在准确性和性能之间取得平衡 条形码类型:指定要搜索的准确格式(支持的格式) 图像过滤器:对倾斜或损坏的 BarCode 进行修正 多线程:启用并行处理以提高性能 旋转处理:自动检测旋转的 BarCode 如何处理来自裁剪区域的多个条形码结果? 在扫描包含多个条码的裁剪区域时,IronBarcode 会返回一个结果集合。 每个结果都包含有价值的元数据,包括作物区域内的确切位置、条形码类型和解码值。 以下是如何实现全面的作物区域处理: :path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.cs using IronBarCode; using System; int x1 = 62; int y1 = 29; int x2 = 345; int y2 = 522; IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1); BarcodeReaderOptions options = new BarcodeReaderOptions() { CropArea = crop1 }; var result = BarcodeReader.Read("sample.png", options); foreach (var item in result) { Console.WriteLine(item.Value); } Imports IronBarCode Imports System Private x1 As Integer = 62 Private y1 As Integer = 29 Private x2 As Integer = 345 Private y2 As Integer = 522 Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1) Private options As New BarcodeReaderOptions() With {.CropArea = crop1} Private result = BarcodeReader.Read("sample.png", options) For Each item In result Console.WriteLine(item.Value) Next item $vbLabelText $csharpLabel 从上面的代码片段中,我们使用了BarcodeReaderOptions对象中实例化的Rectangle作为CropArea属性。 然后,我们将此BarcodeReaderOptions对象作为BarcodeReader.Read()方法的参数,将 CropArea 应用于图像并读取其中的条形码。 高级作物区域技术 对于生产应用,可以考虑这些高级策略: 1.动态裁剪区域:根据文档模板或 OCR 结果计算裁剪区域 2.多个区域:在单个图像中处理多个裁剪区域,实现复杂布局 3.性能优化:将裁剪区域与 async 处理相结合,实现最大吞吐量 4.错误处理:在预期区域未找到条形码时实施后备策略 在处理 PDF 文档时,您可以对特定页面应用裁剪区域,从而大幅缩短大文件的处理时间。 这对于发票、运输标签或条形码位置标准化的表格尤其有用。 作物区域定义的最佳实践 最大限度地提高作物区域的效率: 添加衬垫:在预期条形码位置周围加入 10-20 个像素,以考虑到细微的差异 彻底测试:验证裁剪区域在整个文档集中的工作情况 文档坐标:为您的应用程序维护一份常见作物区域参考表 考虑缩放:考虑不同的图像分辨率或 DPI 设置 监控性能:跟踪处理时间以验证作物区域的有效性 对于需要容错的应用程序,应采用两步法:首先扫描裁剪区域,如果在预期区域内未发现条形码,则退回到全图扫描。 结论 定义裁剪区域是优化 .NET 应用程序中条形码读取性能的一项强大技术。 通过将扫描区域限制在特定区域,可以显著提高速度,同时减少误报。 无论您是处理 单个图像还是批量操作,裁剪区域都能提供生产环境所需的精度和性能。 常见问题解答 什么是 BarCode 裁剪区域,为什么要使用它? 条码裁剪区域是 IronBarcode 在图像中集中扫描的特定区域。通过使用 IronSoftware.Drawing.Rectangle 定义裁剪区域,您可以将条码读取速度提高 5 倍,同时通过将扫描限制在图像的相关区域来减少错误。 如何为条形码读取定义裁剪区域? 您可以在 IronBarcode 中定义裁剪区域,方法是创建一个具有特定坐标(x、y)和尺寸(宽、高)的 IronSoftware.Drawing.Rectangle 对象,然后在调用读取方法时将其传递给 BarcodeReaderOptions.CropArea 属性。 使用裁剪区域能带来哪些性能提升? 与扫描整个图像相比,IronBarcode 的裁剪区域功能可将条码读取性能提高 5 倍。这在处理多页文档或条码位置可预测的高分辨率图像时尤为有益。 如何找到我所在作物区域的正确坐标? 您可以使用 Microsoft Paint、GIMP 或 Photoshop 等图像编辑软件查找裁剪区域坐标。只需打开图像,将光标移动到所需区域的左上角,记下 x、y 坐标,然后找到右下角坐标,即可确定 IronBarcode 中矩形的宽度和高度。 何时使用作物区域特别有益? IronBarcode 中的裁剪区域在处理具有多个条码的图像、复杂背景、多页文档或条码位置一致且可预测的高分辨率图像时尤为重要。 Hairil Hasyimi Bin Omar 立即与工程团队聊天 软件工程师 如所有伟大的工程师一般,Hairil 是个热心的学习者。他正在提高对 C#、Python 和 Java 的知识,并利用这些知识为 Iron Software 团队成员增值。Hairil 从马来西亚的玛拉工业大学加入 Iron Software 团队,获得化学与工艺工程学士学位。 准备开始了吗? Nuget 下载 2,070,733 | 版本: 2026.2 刚刚发布 免费 NuGet 下载 总下载量:2,070,733 查看许可证