zoukankan      html  css  js  c++  java
  • Unity3d 打开本地摄像头扫描二维码

    首先 下载ZXing.Net.0.12.0.0.zip,下载地址为http://zxingnet.codeplex.com/。

    ’解压找到unity文件夹,然后将其放到unity工程。

    using UnityEngine;
    using System.Collections;
    using ZXing;
    using UnityEngine.UI;

    public class QRcode : MonoBehaviour
    {
    public Color32[] data;
    private bool isScan;
    public RawImage cameraTexture;
    public Text txtQRcode;
    private WebCamTexture webCameraTexture;
    private BarcodeReader barcodeReader;
    private float timer = 0;

    IEnumerator Start()
    {
    barcodeReader = new BarcodeReader();
    yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
    if (Application.HasUserAuthorization(UserAuthorization.WebCam))
    {
    WebCamDevice[] devices = WebCamTexture.devices;
    string devicename = devices[0].name;
    webCameraTexture = new WebCamTexture(devicename, 400, 300);
    cameraTexture.texture = webCameraTexture;
    webCameraTexture.Play();
    isScan = true;
    }

    }


    void Update()
    {
    if (isScan)
    {
    timer += Time.deltaTime;

    if (timer > 0.5f) //0.5秒扫描一次
    {
    StartCoroutine(ScanQRcode());
    timer = 0;
    }
    }

    }

    IEnumerator ScanQRcode()
    {
    data = webCameraTexture.GetPixels32();
    DecodeQR(webCameraTexture.width, webCameraTexture.height);
    yield return new WaitForEndOfFrame();
    }

    private void DecodeQR(int width, int height)
    {
    var br = barcodeReader.Decode(data, width, height);
    if (br != null)
    {
    txtQRcode.text = br.Text;
    isScan = false;
    webCameraTexture.Stop();
    }

    }

    }

  • 相关阅读:
    CSS input
    CSS 伪类选择器
    input placeholder 文字颜色修改
    css flex弹性布局学习总结
    jqGrid使用方法
    GridView控件RowDataBound事件的一个实例
    GridView控件RowDataBound事件中获取列字段值的几种途径 !!!
    .net中ckeditor的应用
    博客第一天
    用python实现数学多元数学方程式计算
  • 原文地址:https://www.cnblogs.com/laugher/p/5757759.html
Copyright © 2011-2022 走看看