상세 컨텐츠

본문 제목

유니티 ZXing을 이용한 QRcdoe 인식

프로그래밍/유니티

by 개발자입니다 2020. 7. 25. 14:02

본문

728x90
반응형

저번 포스팅에 이어 오늘은 포스팅에서 만들었던 QRcode를 인식 하는 방법에 대하여 알아보았다. QRcode 인식은 생성과 같이 ZXing을 사용하므로, ZXing.dll을 인포트 하여 주고, 아래와 같이 TestQRcode 라는 이름을 가진 스크립트를 만들어 준 후 빈 오브젝트에 컴포넌트 하여준다.

 

dll 파일 임포트 방법은 이전 포스팅에서 확인 할 수 있습니다.

 

 

1. 하이어라키 창의 빈 오브젝트 생성

 

 

 

 

 

2. 빈 오브젝트에 스크립트 컴포넌트

 

 

 

using System;

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using ZXing;    //ZXing.dll 임포트 후 선언.

 

public class TestQRcode : MonoBehaviour

{

    private WebCamTexture camTexture;

    private Rect screenRect;

 

    static string strBarcodeRead;

 

    void Start()

    {

        strBarcodeRead = null;

        //카메라 화면 크기 조정 //기본 값 스크린 너비, 높이

        screenRect = new Rect(0, 0, Screen.width, Screen.height);  

        camTexture = new WebCamTexture();

        camTexture.requestedHeight = Screen.height;

        camTexture.requestedWidth = Screen.width;

 

        //읽어 들이는 웹 캠 텍스쳐 값이 널이 아니면

        if (camTexture != null)

        {

            //카메라 동작 플레이.  

            //만약 정지 시키고 싶다면 -> camTexture.Stop(); 

            //QR코드 인식 후 씬이 넘어간다면 반드시 Stop을 해주어야 카메라가 꺼진다.

            camTexture.Play();

        }

    }

 

    void OnGUI()

    {

        //OnGUI를 통한 화면에 가시화

        //카메라 화면 크기, 카메라에 쓰일 텍스쳐 값(웹 캠 텍스쳐), 화면에 맟게 그리기

        GUI.DrawTexture(screenRect, camTexture, ScaleMode.ScaleToFit);

 

        try

        {

            //Decode를 통한 QRcode 읽어 들이기. 

            IBarcodeReader barcodeReader = new BarcodeReader();

 

            var result = barcodeReader.Decode(camTexture.GetPixels32(), camTexture.width, camTexture.height);

 

            //만약 결과 값이 널이 아니면

            if (result != null)

            {

                //인식한 QRcode의 텍스트 값을 로그.

                Debug.Log(result.Text);

                strBarcodeRead = result.Text;

            }

        }

        catch (Exception ex)

        {

            Debug.LogWarning(ex.Message);

        }

    }

}

 

위에는 웹 캠 텍스쳐를 카메라로 사용하는 스크립트로 ZXing를 통해 바코드를 인식하는 방법에 대하여 간단하게 적어보았다. 새 스크립트를 생성하였다면, 다음 하이어라키 창에서 빈 오브젝트를 만들고 해당 스크립트를 컴포넌트하고 실행하여보자, 그렇다면 화면에 맞게 카메라가 동작하는 것을 확인 할 수 있을 것이며, QRcode 를 인식한다면 콘솔 창을 통해 해당 QRcode의 텍스트를 확인 할 수 있을 것이다.

 

 

 

728x90
반응형

관련글 더보기

댓글 영역