유니티(Unity)에서 ZXing을 사용하여 이미지의 QR(및 바코드) 인식하기

반응형

유니티에서 ZXing을 사용하여 이미지의 QR(및 바코드) 인식하기

ZXing (Zebra Crossing)는  바코드와 QR 코드를 생성하고 읽을 수 있는 오픈소스 라이브러리입니다(Apache License 2.0 하에 배포) Java로 작성되었으며 다양한 환경에서 사용될 수 있도록 여러 언어로 포팅되어 모바일 앱 QR 코드 스캔,  제품 정보 등을 포함한 QR 코드 생성, 상업적 바코드 시스템(상품 스캔)등의 프로젝트에 사용할수있습니다.
바코드 스캔 기능 - 카메라 또는 이미지 데이터를 통해 QR 코드를 디코딩합니다.
바코드 생성 기능 - QR 코드와 1D 바코드를 생성하여 이미지로 출력합니다.

QR코드를 포함한 다양한 형식의 1D 및 2D 바코드를 지원합니다(QR Code, Data Matrix, Aztec, PDF 417, EAN-13, UPC-A, Code 128등)

1)아래 웹사이트에서 zxing.unity.dll 파일을 다운로드합니다.
https://drive.google.com/file/d/1UB1j8Cs4g8x67caQFg412NGWIwC_-3af/view

 

zxing.unity.dll

 

drive.google.com

 

 

2)다운로드한 zxing.unity.dll 파일을 유니티 프로젝트로 가져오기하고 Assets/Plugins 폴더에 위치시킵니다.

 

 

QR 코드 생성 및 이미지 준비하기

3)Adobe Express 웹사이트에서 QR 코드의 Raw text 또는 URL를 입력하고 download를 클릭하여 QR코드를 생성 및 다운로드합니다.  

 

 

4)QR 코드를 포함하는 텍스처 이미지를 준비합니다.

 

5)텍스처 이미지를 프로젝트에 가져오기합니다(import)

 

6)텍스처의 Read/Write 에체크하고 적용합니다(apply)

 

7)새로운 스크립트에서 ZXing 네임스페이스 선언합니다.

 

8)텍스처에서 QR 코드 디코딩에 필요한 픽셀 데이터 추출하고 디코딩한 결과를 반환합니다.
Color32[] pixels = texture.GetPixel34();
텍스처의 모든 픽셀 색상을 Color32 배열로 반환합니다.
각 픽셀의 색상은 RGBA 값을 가진 Color32 구조체로 표현됩니다.

BarcodeReader = new BarcodeReader();

BarcodeReader 인스턴스를 생성합니다.

 

int width = texture.width;
int height = texture.height;
var result = reader.Decode(pixels , width, height);

Decode 메서드를 사용하여 텍스처의 픽셀 데이터(pixels), 너비(width), 높이(height)를 입력받아 QR 코드를 디코딩한 결과(result)를 반환합니다.

 

9)게임을 시작하면 QR 코드의 Raw Text 또는 URL를 문자열로 출력합니다.




기타
How to create QRcode scanner in Unity
https://youtu.be/43qt62TbY7E

 

https://youtu.be/To7hoS_XQpU

 

 

 

Zxing
https://github.com/zxing/zxing

ZXing.Net(ZXing의 공식 C#/.NET 포팅 버전)
https://github.com/micjahn/ZXing.Net
https://github.com/micjahn/ZXing.Net/tree/master

반응형

댓글

Designed by JB FACTORY