关于Unity调用摄像头扫描二维码与生成二维码的实现方法
1 /************************************************* 2 * 项目名称:Unity实现启用摄像头扫描与生成二维码 3 * 脚本创建人:魔卡 4 * 脚本创建时间:2017.12.20 5 * 脚本功能:二维码识别生成控制类 6 * ***********************************************/ 7 using System.Collections; 8 using System.Collections.Generic; 9 using UnityEngine; 10 using UnityEngine.UI; 11 using ZXing; 12 using ZXing.QrCode; 13 14 //二维码识别生成控制类 15 public class QRCode : MonoBehaviour 16 { 17 #region 扫描二维码 18 //定义一个用于存储调用电脑或手机摄像头画面的RawImage 19 public RawImage m_cameraTexture; 20 21 //摄像头实时显示的画面 22 private WebCamTexture m_webCameraTexture; 23 24 //申请一个读取二维码的变量 25 private BarcodeReader m_barcodeRender=new BarcodeReader(); 26 27 //多久检索一次二维码 28 private float m_delayTime = 3f; 29 #endregion 30 31 #region 生成二维码 32 //用于显示生成的二维码RawImage 33 public RawImage m_QRCode; 34 35 //申请一个写二维码的变量 36 private BarcodeWriter m_barcodeWriter; 37 #endregion 38 39 40 #region 扫描二维码 41 void Start () 42 { 43 //调用摄像头并将画面显示在屏幕RawImage上 44 WebCamDevice[] tDevices = WebCamTexture.devices; //获取所有摄像头 45 string tDeviceName = tDevices[0].name; //获取第一个摄像头,用第一个摄像头的画面生成图片信息 46 m_webCameraTexture = new WebCamTexture(tDeviceName, 400, 300);//名字,宽,高 47 m_cameraTexture.texture = m_webCameraTexture; //赋值图片信息 48 m_webCameraTexture.Play(); //开始实时显示 49 50 InvokeRepeating("CheckQRCode", 0, m_delayTime); 51 } 52 /// <summary> 53 /// 检索二维码方法 54 /// </summary> 55 void CheckQRCode() 56 { 57 //存储摄像头画面信息贴图转换的颜色数组 58 Color32[] m_colorData= m_webCameraTexture.GetPixels32(); 59 60 //将画面中的二维码信息检索出来 61 var tResult= m_barcodeRender.Decode(m_colorData, m_webCameraTexture.width, m_webCameraTexture.height); 62 63 if (tResult != null) 64 { 65 Debug.Log(tResult.Text); 66 } 67 } 68 #endregion 69 70 #region 传递字符串生成二维码 71 void Update() 72 { 73 if (Input.GetKeyDown(KeyCode.Escape)) 74 { 75 //在这种写法中 宽高必须256 否则报错 76 ShowQRCode("魔卡先生", 256, 256); 77 } 78 } 79 /// <summary> 80 /// 显示绘制的二维码 81 /// </summary> 82 /// <param name="s_formatStr">扫码信息</param> 83 /// <param name="s_width">码宽</param> 84 /// <param name="s_height">码高</param> 85 void ShowQRCode(string s_str,int s_width,int s_height) 86 { 87 //定义Texture2D并且填充 88 Texture2D tTexture = new Texture2D(s_width, s_height); 89 90 //绘制相对应的贴图纹理 91 tTexture.SetPixels32(GeneQRCode(s_str, s_width, s_height)); 92 93 tTexture.Apply(); 94 95 //赋值贴图 96 m_QRCode.texture = tTexture; 97 } 98 /// <summary> 99 /// 返回对应颜色数组 100 /// </summary> 101 /// <param name="s_formatStr">扫码信息</param> 102 /// <param name="s_width">码宽</param> 103 /// <param name="s_height">码高</param> 104 Color32 [] GeneQRCode(string s_formatStr,int s_width,int s_height) 105 { 106 //设置中文编码格式,否则中文不支持 107 QrCodeEncodingOptions tOptions = new QrCodeEncodingOptions(); 108 tOptions.CharacterSet = "UTF-8"; 109 //设置宽高 110 tOptions.Width = s_width; 111 tOptions.Height = s_height; 112 //设置二维码距离边缘的空白距离 113 tOptions.Margin = 3; 114 115 //重置申请写二维码变量类 (参数为:码格式(二维码、条形码...) 编码格式(支持的编码格式) ) 116 m_barcodeWriter = new BarcodeWriter{Format =BarcodeFormat.QR_CODE ,Options =tOptions }; 117 118 //将咱们需要隐藏在码后面的信息赋值上 119 return m_barcodeWriter.Write(s_formatStr); 120 } 121 #endregion 122 123 }
5.生成的效果图如下:
转载于:https://www.cnblogs.com/mrmocha/p/8076154.html
关于Unity调用摄像头扫描二维码与生成二维码的实现方法相关推荐
- PC端调用摄像头扫描二维码,拿到二维码信息
PC端调用摄像头扫描二维码,拿到二维码信息 <template><el-dialogtitle="扫描设备二维码":visible.sync="dial ...
- C#生成二维码、调用摄像头扫描二维码
二维码的生成和解码,有两个开源项目可以参考: 一个是google的zxing,另外一个是ThroughWork. zxing做的很全面,支持各种语言和平台,具体不多讲,自己查去.ThroughWork ...
- Android之ZXing扫描二维码以及生成二维码
Android之ZXing扫描二维码以及生成二维码 ZXIng项目地址:ZXing地址 项目结构 扫描二维码:使用 CaptureActivity类 项目代码: import android.cont ...
- 二维码(生成二维码和扫描二维码)超简单 超简易
二维码(生成二维码和扫描二维码)Zxing 例: 配置权限: 项目下的 build.gradle 文件里加入,7.0版本以后可能会转入settings.gradle文件 pluginManagemen ...
- Vue 扫码及生成二维码
Vue 扫码及生成二维码 最近写了一个扫码签到的小网站,主要用到了Vue的两个相关库 建议大家到官网学习使用方法 我吧我写的实例代码贴在这里了(●'◡'●) vue-qr - npm (npmjs.c ...
- 【科普文】二维码的[生成]和[扫码]
作者:孙辉,美团金融前端团队成员.15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: sunyuhui.com 最近这段时间,团队在做的业务主要和二维码相关,在做的过程中,发 ...
- 基于Vue3实现扫码枪扫码并生成二维码的代码解析
基于Vue3实现扫码枪扫码并生成二维码的代码解析 在本文中,我们将介绍如何使用Vue3实现扫码枪扫描条形码或二维码,并将其转换为二维码的过程.这个过程将涉及到以下步骤: 在Vue3项目中安装和导入vu ...
- 【vue生成二维码】1.将后端返回的二维码字符串生成二维码;2.下载功能
vue使用qrcode插件 一.只展示一张图的效果 一.效果图: 二.具体代码: 1.安装 npm i qrcodejs2 --save 2.在页面使用 2.1.html <div id=&qu ...
- Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码
Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...
最新文章
- Github 简明教程
- SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)...
- 玩转u-boot之【初探环境变量env/bootcmd/bootargs】
- python图标icon_用Python提取exe图标icon
- 90行代码让微信地球转起来,太酷了!(python实现)
- easyui datagrid 不分页_快递物流管理系统(SSM,JQUERY-EASYUI,MYSQL)
- Oracle 高级教程
- ios icon 自动生成
- 矩阵和POJ 3233
- 网站三级域名是什么样?
- 网络系统实现技术--AppleTalk
- set和hashset区别及用法
- 【电路】电容(四)——旁路电容
- 前后端分离项目部署(部署在同一台服务器)
- reac antd 删除列表
- scrapy中用来代替crawl 功能的main文件配置
- 使用TensorRT加速YOLOX目标检测算法
- NDK开发之JNI基础
- 中手游署理《每天炫舞》内测 前进精品手游商场
- vs按f5没反应_NBA直播:灰熊vs火箭 死亡五小战过关斩将,本战势在必得
热门文章
- 分析一个文本(英文文章)(300k—500k)中的词出现的频率,并且把频率最高的10个词打印出来。...
- SharePoint 2013的100个新功能之网站管理(二)
- wpf silverlight开发框架(prism)系列教程
- java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
- vue点击改变data值_vue 中自定义指令改变data中的值
- vue-ueditor 后端配置项没有正常加载_揭秘Gannt后端集成问题该如何解决
- 电脑下边的任务栏不见了_XP系统任务栏被空白工具栏占领快速删除办法
- 链路 英文_光纤链路基础
- fgo日服服务器维护,【FGO日服】活动维护通知(1/10)
- matlab pdist函数官方详解