检测和提取条形码使用实时捕获- Xamarin c#

本教程展示了如何使用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#教程。

创建项目并添加LEADTOOLS引用

中创建的项目的副本开始集成实时捕捉与Xamarin相机控制教程。如果您没有该项目,请按照该教程中的步骤创建它。

所需要的参考资料取决于项目的目的。对于这个项目,需要以下NuGet包:

有关应用程序需要哪些DLL库的完整列表,请参阅你的申请所包含的文件

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License

有两种类型的运行时许可证:

增加代码检查和要求摄像许可

随着项目的创建、引用的添加和许可的设置,编码就可以开始了。

解决方案资源管理器,打开LiveCapturePage.xaml.cs并确保将以下内容添加到使用代码顶部的区域:

c#
使用系统;使用包含;使用Xamarin.Forms;使用Xamarin.Forms.Xaml;使用Leadtools;使用Leadtools.Barcode;

添加以下全局变量:

c#
私人BarcodeEngine barcodeEngineInstance;

初始化BarcodeEngine实例中的LiveCapturePage类,如下所示。

c#
公共LiveCapturePage ()InitializeComponent ();leadCamera.CameraOptions.AutoRotateImage =真正的barcodeEngineInstance =BarcodeEngine ();

将下面的代码添加到LeadCamera_FrameReceived事件处理程序来抓取每一帧作为RasterImage对象时,运行条形码检测,如果检测到条形码,则提取条形码数据并将条形码信息输出给用户。

c#
私人无效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事件使用设备的摄像头运行条形码实时检测。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2023领德科技有限公司版权所有。