65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用 LEADTOOLS 从图像中读取条形码

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2011年11月7日

CPOL

3分钟阅读

viewsIcon

59240

downloadIcon

2339

在本文中,我们将创建一个简单的应用程序,用于加载图像并读取其条形码。通过从教程下方提供的链接下载功能齐全的评估 SDK,亲自试用一下。

引言

条形码在当今世界中扮演着非常重要的角色。从零售商店到移动设备,每天都在使用数百种条形码。LEADTOOLS 支持读取和写入几乎所有条形码符号,并可用于 C++、.Net、Silverlight 和 Windows Phone。其高级编程接口只需几行代码即可读取和写入条形码。

除了广泛的条形码支持之外,LEADTOOLS 对于基于图像的条形码应用程序来说也是不可或缺的,因为它具有许多额外的图像处理技术,包括文档清理、表单识别和处理、OCR、TWAIN 扫描以及对 150 多种格式的支持。

在本文中,我们将创建一个简单的应用程序,用于加载图像并读取其条形码。 通过从教程下方提供的链接下载功能齐全的评估 SDK,亲自试用一下。

LEADTOOLS SDK 中的关键条形码功能

  • 检测、读取和写入一维和二维条形码,如 UPC、EAN、Code 128、Data Matrix、QR Code、PDF417
  • 高级、对程序员友好的 .NET 接口
    • 通过单个函数调用检测和读取所有条形码类型
    • 配置选项,仅读取特定类型、颜色、粒度、方向、感兴趣区域等的条形码
    • 自动图像清理,适用于二维条形码 - 非常适合质量差的传真和扫描文档
  • 加载、保存和转换 150 多种格式,包括 JPEG、JPEG2000、TIFF、FAX、CMP 等
  • 文档清理
  • 快速 TWAIN 和 WIA 图像采集
  • 用于 .NET、WPF 和 ASP.NET 的高级图像显示控件

附加功能包括

  • PDF 读取/写入/编辑
  • OCR、MICR 和 OMR
  • 表单识别和处理
  • 注释和标记
  • DICOM 和 PACS
  • 医学 3D 体积重建
  • 多媒体编解码器和处理
  • MPEG-2 传输流

环境

此示例需要 Visual Studio 2008 或更高版本以及 LEADTOOLS 的 .NET 2.0 库。 还支持 .NET 4.0 和 Silverlight。

使用条形码 SDK

首先,使用 RasterCodecs 对象加载图像。 此类处理所有文件 I/O 和图像元数据功能。 您可能会注意到一些用于单个编解码器文件的引用,例如 Leadtools.Codecs.Tif.dll、Leadtools.Codecs.Bmp.dll 等。 这些库增加了对这些文件格式的支持,因此如果您希望加载任何其他文件,您将需要添加对相应编解码器的引用,否则您将收到“无效文件格式”错误。

using (OpenFileDialog ofd = new OpenFileDialog())
{
   ofd.Filter = "TIFF|*.tif|JPEG|*.jpg|PNG|*.png|BMP|*.bmp|All Files|*.*";
   if (ofd.ShowDialog() == DialogResult.OK)
   {
      using (RasterCodecs codecs = new RasterCodecs())
      {
         // Load first page into the viewer
         rasterImageViewer1.Image = codecs.Load(ofd.FileName, 0, 
             CodecsLoadByteOrder.BgrOrGray, 1, 1);
      }
   }
}

接下来,使用 BarcodeEngine 对象读取条形码。 此示例使用默认选项读取所有水平方向的条形码。 存在用于缩小搜索区域、条形码类型和条形码方向的其他选项。

// Create a Barcode engine
BarcodeEngine engine = new BarcodeEngine();
 
// Ignore errors in case there are corrupted ones on the image.
engine.Reader.ErrorMode = BarcodeReaderErrorMode.IgnoreAll;
 
// Read all barcodes with default options.
BarcodeData[] barcodes = engine.Reader.ReadBarcodes(rasterImageViewer1.Image, 
    LogicalRectangle.Empty, 0, null);
 
// Print out the barcodes we found
StringBuilder results = new StringBuilder();
results.AppendFormat("{0} barcodes found.\r\n\r\n", barcodes.Length);
for (int i = 0; i < barcodes.Length; i++)
{
   BarcodeData barcode = barcodes[i];
   results.AppendFormat("  {0} - {1} - {2}\r\n", i + 1, barcode.Symbology, 
       barcode.Value);
}

运行示例时,图像将显示在查看器中,所有检测到的条形码都将写入文本框中

How-to-Read-Barcodes/image001.jpg

结论

LEADTOOLS 为开发人员提供了访问世界上性能最佳且最稳定的图像处理库的权限,其编程接口易于使用且级别较高,从而可以快速开发业务关键型应用程序。

条形码只是 LEADTOOLS 提供的众多技术之一。 有关我们其他产品的更多信息,请务必访问我们的 主页,下载功能齐全的免费评估 SDK,并在您的评估期间利用我们的免费技术支持。

下载条形码示例

您可以下载一个功能齐全的演示,其中包括上面讨论的功能。 要运行此示例,您需要以下内容

支持

需要帮助来启动和运行此示例? 联系我们的支持团队 以获得免费技术支持! 对于定价或许可问题,您可以联系我们的销售团队 (sales@leadtools.com) 或致电 704-332-5532。

© . All rights reserved.