本教程展示了如何使用LEADTOOLS SDK在c# Xamarin应用程序中使用Xamarin Camera Control实时捕获条形码。
概述 | |
---|---|
总结 | 本教程介绍如何使用FrameReceived 事件来实时捕获条形码在c# Xamarin应用程序。 |
完成时间 | 15分钟 |
Visual Studio项目 | 下载教程项目(509 KB) |
平台 | c# Xamarin跨平台应用 |
IDE | Visual Studio 2019 |
开发许可 | 下载LEADTOOLS |
通过回顾Xamarin相机控件,熟悉创建项目和使用Xamarin相机控件的基本步骤添加引用和设置License和集成实时捕捉与Xamarin相机控制教程,在工作之前检测和提取条形码使用实时捕获- Xamarin c#教程。
中创建的项目的副本开始集成实时捕捉与Xamarin相机控制教程。如果您没有该项目,请按照该教程中的步骤创建它。
所需要的参考资料取决于项目的目的。对于这个项目,需要以下NuGet包:
Leadtools。条形码
Leadtools.Camera.Xamarin
有关应用程序需要哪些DLL库的完整列表,请参阅你的申请所包含的文件.
许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
随着项目的创建、引用的添加和许可的设置,编码就可以开始了。
在解决方案资源管理器,打开LiveCapturePage.xaml.cs
并确保将以下内容添加到使用
代码顶部的区域:
使用系统;
使用包含;
使用Xamarin.Forms;
使用Xamarin.Forms.Xaml;
使用Leadtools;
使用Leadtools.Barcode;
添加以下全局变量:
私人BarcodeEngine barcodeEngineInstance;
初始化BarcodeEngine
实例中的LiveCapturePage
类,如下所示。
公共LiveCapturePage ()
{
InitializeComponent ();
leadCamera.CameraOptions.AutoRotateImage =真正的;
barcodeEngineInstance =新BarcodeEngine ();
}
将下面的代码添加到LeadCamera_FrameReceived
事件处理程序来抓取每一帧作为RasterImage
对象时,运行条形码检测,如果检测到条形码,则提取条形码数据并将条形码信息输出给用户。
私人无效LeadCamera_FrameReceived (Leadtools.Camera.Xamarin。FrameHandlerEventArgs e)
{
//帧接收处理程序代码
frameCounter = frameCounter + 1;
Device.BeginInvokeOnMainThread (() = >
{
capturedFrames。Text = $"Frames Processed: {frameCounter}";
});
使用(RasterImage image = e.Image)
{
BarcodeData[] dataArray = barcodeEngineInstance.Reader。LeadRect ReadBarcodes(图片。空的,0,零);
如果(dataArray。长度> 0)
{
liveCapture。文本=“实时捕捉”;
leadCamera。framerreceived -= leadcamera_framerreceived;
StringBuilder sb =新StringBuilder ();
sb.AppendFormat ("{0}条码已找到", dataArray.Length);
sb.AppendLine ();
为(intI = 0;i < datarray . length;我+ +)
{
BarcodeData data = dataArray[i];
sb.AppendFormat (“符号:{0},位置:{1},数据:{2}”, data. symbolic . tostring (), data.Bounds.ToString(), data.Value);
sb.AppendLine ();
}
Device.BeginInvokeOnMainThread (() = >
{
DisplayAlert (“条形码(s)发现!”、sb.ToString ()“OK”);
});
}
}
}
选择所需的项目(iOS或Android),按运行项目F5,或选择调试->开始调试.
如果正确地执行了这些步骤,应用程序将运行并请求允许相机
需要的权限。从设备的摄像头预览将显示在CameraView.
要进行测试,请单击捕捉生活按钮在设备屏幕底部。帧计数器将在UI的顶部增加,以显示被捕获的帧CameraView.对于每一帧RasterImage
对象创建BarcodeEngine
将在框架中检测条形码。如果帧中存在条形码,则将检测、提取它,并将信息显示为用户的警报。
方法的使用FrameReceived
事件使用设备的摄像头运行条形码实时检测。