本教程演示如何创建一个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.Common
Leadtools.Viewer.Controls.WinForms
如果使用本地DLL引用,则需要以下DLL。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \净
:
Leadtools.Barcode.dll
Leadtools.Barcode.OneD.dll
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Fax.dll
Leadtools.Codecs.Tif.dll
Leadtools.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应用程序中读取条形码信息并显示结果。