unityZXing二维码的生成与扫描
更新时间:2020年6月25日 10:36 点击:1325
本文实例为大家分享了unityZXing二维码生成与扫描的具体代码,供大家参考,具体内容如下
借鉴自某位大佬不记得了
using System.Collections; using System.Collections.Generic; using UnityEngine; using ZXing; using UnityEngine.UI; /// <summary> /// 二维码扫描识别功能 /// </summary> public class TestQRCodeScanning : MonoBehaviour { [Header("摄像机检测界面")] public RawImage cameraTexture;//摄像机映射显示区域 private WebCamTexture webCamTexture;//摄像机映射纹理 public Text text;//用来显示扫描信息 //二维码识别类 BarcodeReader barcodeReader;//库文件的对象(二维码信息保存的地方) /// <summary> /// 开启摄像机和准备工作 /// </summary> void DeviceInit() { //1、获取所有摄像机硬件 WebCamDevice[] devices = WebCamTexture.devices; //2、获取第一个摄像机硬件的名称 string deviceName = devices[0].name;//手机后置摄像机 //3、创建实例化一个摄像机显示区域 webCamTexture = new WebCamTexture(deviceName, 400, 300); //4、显示的图片信息 cameraTexture.texture = webCamTexture; //5、打开摄像机运行识别 webCamTexture.Play(); //6、实例化识别二维码信息存储对象 barcodeReader = new BarcodeReader(); } Color32[] data;//二维码图片信息以像素点颜色信息数组存放 /// <summary> /// 识别摄像机图片中的二维码信息 /// 打印二维码识别到的信息 /// </summary> void ScanQRCode() { //7、获取摄像机画面的像素颜色数组信息 data = webCamTexture.GetPixels32(); //8、获取图片中的二维码信息 Result result = barcodeReader.Decode(data,webCamTexture.width,webCamTexture.height); //如果获取到二维码信息了,打印出来 if (result!=null) { Debug.Log(result.Text);//===》==》===》 这是从二维码识别出来的信息 text.text = result.Text;//显示扫描信息 //扫描成功之后的处理 IsScanning = false; webCamTexture.Stop(); } } /// <summary> /// Start 初始化函数 /// </summary> private void Start() { scanningButton.onClick.AddListener(ScanningButtonClick); } bool IsScanning = false; float interval = 3;//扫描识别时间间隔 [SerializeField] Button scanningButton; void ScanningButtonClick() { DeviceInit(); IsScanning = true; } private void Update() { if (IsScanning) { //每隔一段时间进行一次识别二维码信息 interval += Time.deltaTime; if (interval>=3) { interval = 0; ScanQRCode();//开始扫描 } } } }
ZXing:ZingNet
下载之后把zxing.unity.dll拷贝到Unity的Plugins文件夹下,
zxing.unity.dll下载之后的位置找到UnityDemo/Assets下
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using ZXing; //二维码的生成 public class TestQRCodeDraw : MonoBehaviour { [Header("绘制好的二维码显示界面")] public RawImage QRCode; //二维码绘制类 BarcodeWriter barcodeWriter; [SerializeField] Button drawbutton; /// <summary> /// 将制定字符串信息转换成二维码图片信息 /// </summary> /// <param name="formatStr">要生产二维码的字符串信息</param> /// <param name="width">二维码的宽度</param> /// <param name="height">二维码的高度</param> /// <returns>返回二维码图片的颜色数组信息</returns> Color32[] GeneQRCode(string formatStr,int width,int height) { //绘制二维码前进行一些设置 ZXing.QrCode.QrCodeEncodingOptions options = new ZXing.QrCode.QrCodeEncodingOptions(); //设置字符串转换格式,确保字符串信息保持正确 options.CharacterSet = "UTF-8"; //设置绘制区域的宽度和高度的像素值 options.Width = width; options.Height = height; //设置二维码边缘留白宽度(值越大留白宽度大,二维码就减小) options.Margin = 1; //实例化字符串绘制二维码工具 barcodeWriter = new BarcodeWriter {Format=BarcodeFormat.QR_CODE,Options=options }; //进行二维码绘制并进行返回图片的颜色数组信息 return barcodeWriter.Write(formatStr); } /// <summary> /// 根据二维码图片信息绘制指定字符串信息的二维码到指定区域 /// </summary> /// <param name="str">要生产二维码的字符串信息</param> /// <param name="width">二维码的宽度</param> /// <param name="height">二维码的高度</param> /// <returns>返回绘制好的图片</returns> Texture2D ShowQRCode(string str,int width,int height) { //实例化一个图片类 Texture2D t = new Texture2D(width, height); //获取二维码图片颜色数组信息 Color32[] col32 = GeneQRCode(str, width, height); //为图片设置绘制像素颜色信息 t.SetPixels32(col32); //设置信息更新应用下 t.Apply(); //将整理好的图片信息显示到指定区域中 return t; } /// <summary> /// 开始绘制指定信息的二维码 /// </summary> /// <param name="formatStr"></param> void DrawQRCode(string formatStr) { //注意:这个宽高度大小256不要变。不然生成的信息不正确 //256有可能是这个ZXingNet插件指定大小的绘制像素点数值 Texture2D t = ShowQRCode(formatStr, 256, 256); //显示到UI界面的图片上 QRCode.texture = t; } public string QRCodeText = "二维码"; void DrawButtonClick() { DrawQRCode(QRCodeText); } private void Start() { drawbutton.onClick.AddListener(DrawButtonClick); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
上一篇: C#实现定时关机小应用
下一篇: C#窗口实现定时关机系统
相关文章
- 最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个...2016-11-25
- 本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
- 这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
- ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴。...2020-06-25
- 这篇文章主要介绍了浅谈js二维码扫码登录是什么原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
- 在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
- QrCode.Net是一个使用C#编写的用于生成二维码图片的类库,使用它可以非常方便的为WinForm、WebForm、WPF、Silverlight和Windows Phone 7应用程序提供二维码编码输出功能。可以将二维码文件导出为eps格式...2020-06-25
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
这篇文章主要介绍了基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-09-01- 这篇文章主要为大家详细介绍了jquery canvas生成带有二维码的海报,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-29
- 本文给大家汇总了几种C#使用第三方组件生成二维码的方法以及示例,非常的简单实用,都是项目中经常需要用到的,希望大家能够喜欢...2020-06-25
- 这篇文章主要介绍了php 解决扫描二维码下载跳转问题的相关资料,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了用Java生成二维码并附带文字信息,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-29
- 这篇文章主要介绍了three.js 制作动态二维码的示例代码,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-08-01
- 生成二维码程序在网上可以找到很多我们发现像google,还有一些国外站都提供了免费生成二维码的插件或api了,下面我来给大家介绍几种。 最简单最实例的goolge开源方法...2016-11-25
- 本文给大家介绍js动态生成二维码图片的相关内容,感兴趣的朋友一起学习吧...2016-04-22
- 这篇文章主要介绍了js微信扫描二维码登录网站技术原理,具有一定的参考价值,有需要的可以了解一下。...2016-12-02
- 这篇文章主要为大家详细介绍了C#利用ZXing.Net生成条形码和二维码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- phpqrcode是一个php生成二维码的类库,我们可以利用他轻松生成二维码,本文我们来看看用yii如何整合phpqrcode生成二维码的。 以前我们讲过一些关于用phpqrcode生成二...2016-11-25
PHP识别二维码的方法(php-zbarcode安装与使用)
这篇文章主要介绍了PHP识别二维码的方法,通过安装ImageMagick和php-zbarcode扩展实现针对二维码的识别功能,具有一定参考借鉴价值,需要的朋友可以参考下...2016-07-25- 这篇文章主要介绍了Symfony生成二维码的方法,实例分析了采用google开放api和PHP类库phpqrcode两种方法,并结合实例详细说明了Symfony下使用EndroidQrCodeBundle生成二维码的具体步骤与实现方法,需要的朋友可以参考下...2016-02-09