• 扫描二维码加载网页图片


    /*              #########                       
                  ############                     
                  #############                    
                 ##  ###########                   
                ###  ###### #####                  
                ### #######   ####                 
               ###  ########## ####                
              ####  ########### ####               
             ####   ###########  #####             
            #####   ### ########   #####           
           #####   ###   ########   ######         
          ######   ###  ###########   ######       
         ######   #### ##############  ######      
        #######  #####################  ######     
        #######  ######################  ######    
       #######  ###### #################  ######   
       #######  ###### ###### #########   ######   
       #######    ##  ######   ######     ######   
       #######        ######    #####     #####    
        ######        #####     #####     ####     
         #####        ####      #####     ###      
          #####       ###        ###      #        
            ###       ###        ###              
             ##       ###        ###               
    __________#_______####_______####______________
        身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
                    我们的未来没有BUG              
    * ==============================================================================
    * Filename: camRocode
    * Created:  $time$
    * Author:   WYC
    * Purpose:  掃描二維碼加載圖片
    * ==============================================================================
    */
    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    using ZXing;
    
    public class camRocode : MonoBehaviour {
        [Header("UI")]
        public Image image;
        public RawImage cameraTexture;
        public Text txt;
    
        private Color32[] data;
        private bool IsScan;
        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;
            }
    
        }
        int width;
        void ScreenChange()//屏幕横竖屏切换
        {
            if (width == Screen.width)
                return;
            width = Screen.width;
    
            if (width > Screen.height)
            {
                cameraTexture.transform.localEulerAngles = Vector3.zero;
            }
            else
            {
                cameraTexture.transform.localEulerAngles = new Vector3(0, 0, -90);
            }
        }
    
        void Update()
        {
            if (IsScan)
            {
                timer += Time.deltaTime;
    
                if (timer > 0.5f) //0.5秒扫描一次
                {
                    StartCoroutine(ScanQRcode());
                    timer = 0;
                }
            }
           // ScreenChange();
        }
    
        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)
            {
                //txt.text = br.Text;
                //IsScan = false;
                StartCoroutine(Load(br.Text));
            }
    
        }
    
    
        IEnumerator Load(string text)
        {
            txt.text = "正在加載";
            //请求WWW
            WWW www = new WWW(text);
            yield return www;
            if (www != null && string.IsNullOrEmpty(www.error))
            {
                //获取Texture
                Texture2D texture = www.texture;
                //创建Sprite
                Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
                image.sprite = sprite;
                txt.text = "加載成功";
            }
        }
    }
  • 相关阅读:
    ajax获取值的两种方法
    java反射
    idea 方便的设置代码段
    jstl核心标签库
    git遇到的问题 .Git: There is no tracking information for the current branch.
    java使用顺序存储实现队列
    RabbitMQ基本操作
    springboot 如何操作redis
    docker遇到的问题以及docker 操作镜像的基本操作
    教你在 Yii2 中添加全局函数
  • 原文地址:https://www.cnblogs.com/mclll520/p/7891873.html
Copyright © 2020-2023  润新知