Unity调用手机摄像机识别二维码

本文实现Unity调用手机摄像,拍摄,然后识别二维码,显示二维码的内容。

需要导入一个zxing.unity.dll文件,现在这个脚本的识别数据是放在Updata里边扫描的 数据量特别大会卡  要是用的话就自己做一下一秒执行一次。我这里没有弄

下载地址:zxing.unity.dll

代码:

using System.Threading;
using UnityEngine;
using ZXing;

public class WebCameraScript : MonoBehaviour
{
  public string LastResult;
  public string Lastresult;
  public Color32[] data;
  private bool isQuit;

  public GUITexture myCameraTexture;
  private WebCamTexture webCameraTexture;

  private void Start()
  {
    // bool success = CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    // Checks how many and which cameras are available on the device
    for (int cameraIndex = 0; cameraIndex < WebCamTexture.devices.Length; cameraIndex++)
    {
      // We want the back camera
      if (!WebCamTexture.devices[cameraIndex].isFrontFacing)
      {
        //webCameraTexture = new WebCamTexture(cameraIndex, Screen.width, Screen.height);
        webCameraTexture = new WebCamTexture(cameraIndex, 200, 200);

        // Here we flip the GuiTexture by applying a localScale transformation
        // works only in Landscape mode
        myCameraTexture.transform.localScale = new Vector3(1, 1, 1);
      }
    }

    // Here we tell that the texture of coming from the camera should be applied
    // to our GUITexture. As we have flipped it before the camera preview will have the
    // correct orientation
    myCameraTexture.texture = webCameraTexture;
    // Starts the camera
    webCameraTexture.Play();
    //enabled=WebCamTexture.s
  }

  public void ShowCamera()
  {
    myCameraTexture.guiTexture.enabled = true;
    webCameraTexture.Play();
  }

  public void HideCamera()
  {
    myCameraTexture.guiTexture.enabled = false;
    webCameraTexture.Stop();
  }

  private void OnGUI()
  {
    GUI.Label(new Rect(60, 30*1, Screen.width, 20), "LastResult:" + LastResult);
    if (GUI.Button(new Rect(0, 0, 100, 100), "ON/OFF"))
    {
      if (webCameraTexture.isPlaying)
        HideCamera();
      else
        ShowCamera();
    }
  }

  private void Update()
  {
    //data = new Color32[webCameraTexture.width * webCameraTexture.height];
    data = webCameraTexture.GetPixels32();

    DecodeQR(webCameraTexture.width, webCameraTexture.height);
  }

  private void DecodeQR(int W, int H)
  {
    if (isQuit)
      return;
    // create a reader with a custom luminance source
    var barcodeReader = new BarcodeReader {AutoRotate = true, TryHarder = true};

    //    while (true)
    {
      try
      {
        // decode the current frame
        Result result = barcodeReader.Decode(data, W, H);
        if (result != null)
        {
          LastResult = result.Text;
          // shouldEncodeNow = true;
          print("i read out::" + result.Text);
        }

        // Sleep a little bit and set the signal to get the next frame
        Thread.Sleep(200);
        data = null;
      }
      catch
      {
      }
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • unityZXing二维码的生成与扫描

    本文实例为大家分享了unityZXing二维码生成与扫描的具体代码,供大家参考,具体内容如下 借鉴自某位大佬不记得了 using System.Collections; using System.Collections.Generic; using UnityEngine; using ZXing; using UnityEngine.UI; /// <summary> /// 二维码扫描识别功能 /// </summary> public class TestQRCodeScan

  • Unity调用手机摄像机识别二维码

    本文实现Unity调用手机摄像,拍摄,然后识别二维码,显示二维码的内容. 需要导入一个zxing.unity.dll文件,现在这个脚本的识别数据是放在Updata里边扫描的 数据量特别大会卡  要是用的话就自己做一下一秒执行一次.我这里没有弄 下载地址:zxing.unity.dll 代码: using System.Threading; using UnityEngine; using ZXing; public class WebCameraScript : MonoBehaviour {

  • JS调用安卓手机摄像头扫描二维码

    项目要求: 使用H5模仿微信扫一扫付款功能 经过一系列的查找最后发现可以使用 JS调用手机摄像头然后用画布把当前摄像头的数据转成Base64的png图片,经过QrCode直接再本地识别. 优点: 兼容大多数浏览器 本地识别不占用服务端资源 代码比较简单只有一个页面 <html lang="ZH-CN"> <head> <meta charset="utf-8"> <title>Web QrCode Test</t

  • winform 调用摄像头扫码识别二维码的实现步骤

    因为公司业务需求,需要在Windows系统下调用摄像头识别二维码需求,就有了这个功能. 我根据网上网友提供的一些资料,自己整合应用到项目中,效果还不错(就是感觉像素不是太好) 现在将调用摄像头+识别二维码这两个功能单独出来写到这里,供大家讨论和参考. 有什么不足或者问题大家可以提出来,共同改进共同进步 创建一个空的winform项目解决方案,我起名叫他:ScanQRCode 将Form1作为主窗体,设置相关属性: StartPosition:CenterScreen (窗体居中) 添加一个居中标

  • Android 二维码 生成和识别二维码 附源码下载

    今天讲一下目前移动领域很常用的技术--二维码.现在大街小巷.各大网站都有二维码的踪迹,不管是IOS.Android.WP都有相关支持的软件.之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解.今天主要是讲解如何使用ZXing库,生成和识别二维码.这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码. 1.ZXing库介绍 这里简单介绍一下ZXing库.ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口

  • iOS模仿微信长按识别二维码的多种方式

    参考:https://github.com/nglszs/BCQRcode 方式一: #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end ************** #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDid

  • 微信小程序webview实现长按点击识别二维码功能示例

    本文实例讲述了微信小程序webview实现长按点击识别二维码功能.分享给大家供大家参考,具体如下: 场景:微信小程序,使用webview控件.需求:点击图片后长按图片出现"识别二维码" 1.JS代码: <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script type="text/javascript"> $(fu

  • PHP生成二维码与识别二维码的方法详解【附源码下载】

    本文实例讲述了PHP生成二维码与识别二维码的方法.分享给大家供大家参考,具体如下: 二维码的分类 线性堆叠式二维码 矩阵式二维码 二维码的优缺点 优点 信息容量大 编码范围广 容错能力强 译码可靠性高 可引入加密措施 成本低,易制作 缺点 二维码技术成为手机病毒.钓鱼网站传播的新渠道 信息泄密 目前流行的三大国际标准 PDF417:不支持中文 DM:专利未公开,需支付专利费用 QR CODE:专利公开,支持中文 QR CODE 纠错能力 L级:约可纠错7%的数据码字 M级:约可纠错15%的数据码

  • 详解Flutter扫码识别二维码内容

    前面一篇写了生成二维码图片,这篇来写使用相机扫描识别二维码 识别二维码需要用到插件barcode_scan 首先在pubspec.yaml文件中添加以下依赖,添加依赖后在pubspec.yaml运行flutter packages get或 使用IDE更新软件包. dependencies: ... barcode_scan: ^1.0.0 Android配置 在使用它之前需要先配置 android\app\src\main\AndroidManifest.xml 在该文件中添加添加app获取相

  • java实现识别二维码图片功能

    本文实例为大家分享了java实现识别二维码图片功能,供大家参考,具体内容如下 所需maven依赖 <dependency>    <groupId>com.google.zxing</groupId>    <artifactId>javase</artifactId>    <version>3.2.1</version> </dependency> <dependency>     <gr

  • 微信小程序长按识别二维码的几种情况分析

    目录 一.image标签 + show-menu-by-longpress=“{{true}}” 二.wx.previewImage 三. web-view 支持长按识别的码 补充:扫码中有几个可配置的参数注意下 总结 小程序中的图片已支持长按识别了,总结一下几种情况下: 一.image标签 + show-menu-by-longpress=“{{true}}” <image src="{{qrcode}}" mode="widthFix" show-menu

随机推荐