本教程演示如何创建一个WinForms c# .NET 6应用程序BarcodeEngine而且BarcodeReader类从图像中读取条形码并在表单上显示其数据。
| 概述 | |
|---|---|
| 总结 | 本教程介绍如何使用BarcodeReader在c# WinForms应用程序中。 |
| 完成时间 | 30分钟 |
| Visual Studio项目 | 下载教程项目(3kb) |
| 平台 | Windows WinForms应用程序 |
| IDE | Visual Studio 2022 |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
|
步骤熟悉创建项目的基本步骤添加引用和设置License而且在图像查看器中显示图像教程,在工作之前检测和提取条形码- WinForms c#教程。
中创建的项目的副本开始在图像查看器中显示图像教程。如果项目不可用,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。引用可以通过以下两种方法中的一种添加(但不能同时添加)。本项目需要参考资料如下:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools。条形码Leadtools.Formats.Raster.CommonLeadtools.Viewer.Controls.WinForms如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \净:
Leadtools.Barcode.dllLeadtools.Barcode.OneD.dllLeadtools.dllLeadtools.Codecs.dllLeadtools.Codecs.Cmp.dllLeadtools.Codecs.Fax.dllLeadtools.Codecs.Tif.dllLeadtools.Controls.WinForms.dll有关特定格式所需的Codec dll的完整列表,请参阅文件格式支持.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中详细介绍了添加LEADTOOLS NuGet和本地引用以及设置许可添加引用和设置License教程。
创建了项目、添加了引用、设置了许可证、初始化了Image Viewer并添加了加载图像代码之后,就可以开始编码了。
开放Form1.cs在解决方案资源管理器.添加一个新的下拉菜单标题条形码,在文件菜单下拉。向新下拉菜单中添加一个新菜单项读取条形码.保持新项目的名称为readBarcodeToolStripMenuItem.双击读取条形码菜单项来创建其单击事件处理程序。
确保下列using语句位于顶部的using块中。
使用系统;使用System.Drawing;使用System.Windows.Forms;使用先;使用Leadtools;使用Leadtools.Controls;使用Leadtools.Codecs;使用Leadtools.Barcode;
将以下代码添加到Form1_Load以Fit缩放模式显示加载的图像,这将使其更容易看到识别的条形码。
私人无效Form1_Load (对象发送者,EventArgs{/ /……//在现有代码下面添加以下行_viewer.Zoom (ControlSizeMode。健康,1.0,新LeadPoint ());}
将以下代码添加到readBarcodeToolStripMenuItem_Click从图像查看器中的图像中检测和提取每个条形码的方法:
私人无效readBarcodeToolStripMenuItem_Click (对象发送者,EventArgs{试一试{如果(_view。形象! =零){BarcodeEngine barcodeEngineInstance =新BarcodeEngine ();BarcodeData[] dataArray = barcodeEngineInstance.Reader.ReadBarcodes(_viewer. readbarcodes)形象,LeadRect。空的,0,零);对话框。显示($"{datarray . length . tostring ()} barcode(s) found");图形g = _viewer.CreateGraphics();为(intI = 0;i < datarray . length;我+ +){BarcodeData data = dataArray[i];//将边界坐标从图像转换为控件LeadRect barcodeLeadRect = _viewer. convertrect (_viewer. rect)ActiveItem ImageViewerCoordinateType。形象,ImageViewerCoordinateType。控制,data.Bounds);//在查看器上为每个对象绘制蓝色矩形g.DrawRectangle (新笔(颜色。红色,4.0f), barcodeLeadRect。X, barcodeLeadRect。Y, barcodeLeadRect。宽度,barcodeLeadRect.Height);//显示条形码信息对话框。显示($"符号:{Data . symbolology . tostring()},位置:{Data . bounds . tostring()},数据:{Data . bounds . tostring()}。价值}”);//重新绘制查看器以删除矩形_viewer.Refresh ();}}其他的对话框。显示(“先加载图像!”);}抓(异常交货){MessageBox.Show (ex.Message);}}
按下运行项目F5,或选择调试->开始调试.
如果正确地遵循了这些步骤,应用程序将能够识别加载在查看器中的图像中的所有条形码。当读取条形码按下,应用程序将显示一个消息框,显示检测到的条形码数量,并循环查看每个条形码,显示一个红色矩形和一个包含相关条形码信息的消息框。
可以使用barcode1.tif测试文件C: \ LEADTOOLS22 \ \图片资源.
本教程展示了如何使用LEADTOOLS SDK在WinForms应用程序中读取条形码信息并显示结果。