You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/labs/IoTClient/Assets/Scripts/BarcodeCam.cs

143 lines
3.4 KiB

//using System.Threading;
//using UnityEngine;
//using ZXing;
//using ZXing.QrCode;
//public class BarcodeCam : MonoBehaviour
//{
// // Texture for encoding test
// public Texture2D encoded;
// private WebCamTexture camTexture;
// private Thread qrThread;
// private Color32[] c;
// private int W, H;
// private Rect screenRect;
// private bool isQuit;
// public string LastResult;
// private bool shouldEncodeNow;
// void OnGUI()
// {
// GUI.DrawTexture(screenRect, camTexture, ScaleMode.ScaleToFit);
// }
// void OnEnable()
// {
// camTexture = new WebCamTexture(WebCamTexture.devices[0].name, 400, 300);
// camTexture.Play();
// if (camTexture != null)
// {
// camTexture.Play();
// W = camTexture.width;
// H = camTexture.height;
// }
// }
// void OnDisable()
// {
// if (camTexture != null)
// {
// camTexture.Pause();
// }
// }
// void OnDestroy()
// {
// qrThread.Abort();
// camTexture.Stop();
// }
// // It's better to stop the thread by itself rather than abort it.
// void OnApplicationQuit()
// {
// isQuit = true;
// }
// void Start()
// {
// encoded = new Texture2D(256, 256);
// LastResult = "http://www.google.com";
// shouldEncodeNow = true;
// screenRect = new Rect(0, 0, Screen.width, Screen.height);
// camTexture = new WebCamTexture();
// camTexture.requestedHeight = Screen.height; // 480;
// camTexture.requestedWidth = Screen.width; //640;
// OnEnable();
// qrThread = new Thread(DecodeQR);
// qrThread.Start();
// }
// void Update()
// {
// if (c == null)
// {
// c = camTexture.GetPixels32();
// }
// // encode the last found
// var textForEncoding = LastResult;
// if (shouldEncodeNow &&
// textForEncoding != null)
// {
// var color32 = Encode(textForEncoding, encoded.width, encoded.height);
// encoded.SetPixels32(color32);
// encoded.Apply();
// shouldEncodeNow = false;
// }
// }
// void DecodeQR()
// {
// // create a reader with a custom luminance source
// var barcodeReader = new BarcodeReader { AutoRotate = false, TryHarder = false };
// while (true)
// {
// if (isQuit)
// break;
// try
// {
// // decode the current frame
// var result = barcodeReader.Decode(c, W, H);
// if (result != null)
// {
// LastResult = result.Text;
// shouldEncodeNow = true;
// print(result.Text);
// }
// // Sleep a little bit and set the signal to get the next frame
// Thread.Sleep(200);
// c = null;
// }
// catch
// {
// }
// }
// }
// private static Color32[] Encode(string textForEncoding, int width, int height)
// {
// var writer = new BarcodeWriter
// {
// Format = BarcodeFormat.QR_CODE,
// Options = new QrCodeEncodingOptions
// {
// Height = height,
// Width = width
// }
// };
// return writer.Write(textForEncoding);
// }
//}