EasyBarCode - QR 코드 판독하기
EasyQRCode는 이미지에 포함된 QR 코드를 감지하고 디코딩한 다음 그 데이터를 반환합니다.
또한 오류 감지 및 정정 알고리즘을 통해 열악하게 인쇄되거나 왜곡된 QR 코드도 정확하게 읽을 수 있습니다.

QR 코드는 어둡고 밝은 점이 정사각형으로 배열된 형태입니다. 하나의 점(또는 "모듈")은 1비트의 정보에 해당합니다.
QR 코드에는 다양한 유형의 데이터가 포함되며, 서로 다른 모델, 버전, 레벨이 될 수 있습니다. 또한 정렬, 크기, 형식, 오류 정정 비트에 대한 메시지와 메타데이터가 항상 포함됩니다. QR 코드는 국제 표준 ISO/IEC 18004(1, 2 및 2005)를 준수합니다.

QR 코드 기호는 데이터와 오류 정정 코드 워드가 포함된 인코딩 영역과 기호 메타데이터와 위치 데이터가 포함된 기능 패턴으로 구성됩니다.
QR 코드는 다음 요소로 구성되어야 합니다.
- 여백 구간: QR 코드 주변의 빈 여백
- 파인더 패턴: QR 코드를 식별하는 인식 구간
- 확장 패턴: QR 코드 정렬을 위한 표식(모델 1)
- 정렬 패턴: QR 코드 정렬을 위한 표식(모델 2 및 2005)
- 타이밍 패턴: 모듈 크기를 제공하는 데이터(픽셀 단위)
- 형식 정보: QR 코드 레벨을 제공하는 구간
- 버전 정보: QR 코드 크기를 제공하는 데이터, 예: 25 x 25 모듈(모델 2 및 2005)
- 데이터 내용 및 오류 정정 코드 워드: 기호가 전달하는 주요 정보 및 오류 정정에 대한 추가 정보
QR 코드의 모델, 형식, 버전에 따라 이 구조의 변형판도 있습니다. 예를 들어, 모델 1 QR 코드에는 정렬 패턴이 없지만 확장 패턴은 있습니다. 마이크로 QR 코드에는 하나의 파인더 패턴만 있고 정렬 패턴은 없습니다. EasyQRCode는 이 모두를 읽을 수 있습니다.
모델 1 QR 코드 기호의 구조
QR 코드 2005 기호의 구조
마이크로 QR 코드 기호의 구조

QR 코드 데이터는 다음 유형의 임의 조합이 될 수 있습니다.
- 숫자 데이터(0-9)
- 영숫자 데이터(0-9, A-Z, /, $, % 등)
- 바이트 데이터
- 칸지 문자

- 모델 1: 최초의 QR 코드 국제 표준이며, 1 ~ 14 버전이 있습니다.
QR 코드의 "버전"은 기호 크기(모듈 수 단위)를 의미합니다. "모델"이라고 불리는 표준의 버전과는 연관이 없음에 유의하십시오. - 모델 2: 모델 1의 개선판입니다. 버전은 1에서 40까지 있습니다. 이 모델에는 왜곡된 QR 코드 또는 곡면에 인쇄된 QR 코드의 판독성을 개선하기 위한 정렬 패턴이 정의되어 있습니다.
- 모델 2005: 모델 2의 개선판으로, 검정 바탕에 흰색의 QR 코드, 미러 기호 방향이 포함되어 있습니다.
- 마이크로 QR 코드: (아직 지원되지 않음) 더 작은 QR 코드로, 버전 M1에서 버전 M4까지 있습니다. 이 모델은 인쇄 공간 절약을 위해 개발되었습니다.

- QR 코드: 버전 1(21 x 21 모듈)에서 버전 40(177 x 177 모듈)까지 있으며, +4 x +4 모듈(버전 2: 25 x 25 모듈, 버전 3: 29 x 29 모듈,..., 버전 39: 173 x 173 모듈) 단위로 증가합니다.
- 마이크로 QR 코드: (아직 지원되지 않음) 버전 M1(11 x 11 모듈), 버전 M2(13 x 13 모듈), 버전 M3(15 x 15 모듈), 버전 M4(17 x 17 모듈).
QR 코드의 예
왼쪽에서 오른쪽 순:
마이크로 QR 코드, 버전 M3, 15 x 15 모듈,
모델 2 QR 코드, 버전 4, 33 x 33 모듈, 67~114 문자,
모델 2 QR 코드, 버전 40, 177 x 177 모듈, 1852~4296 문자

QR 코드에는 오류 정정 데이터가 포함되어 있습니다. 표준은 다음과 같은 오류 정정 레벨을 제공하는 것입니다.
- L: (로우) 약 7%의 코드 워드를 복원할 수 있음
- M: (미디엄) 15%
- Q: (퀄리티) 25%
- H: (하이) 30% (마이크로 QR 코드의 경우 지원되지 않음)


-
QR 코드 판독기는 QR 후보를 디코딩하고 모델, 버전, 레벨, 형상 및 디코딩된 데이터 스트림 과 같은 QR 코드를 반환합니다.
디코딩된 스트림 클래스는 코딩 모드 (기본, FNC1/GS1, 또는 FNC1/AIM)와 응용프로그램 표시기로 구성됩니다(코딩모드가 FNC1/AIM인 경우, 그렇지 않으면 0). 디코딩된 데이터는 해당하는 인코딩(숫자, 영숫자, 바이트, 간지)에 따라 디코딩된 스트림의 각 부분에서 액세스할 수 있습니다. 또한 원시 비트 스트림 (마스크 해재 및 오류 수정 후 비트 데이터로 디코딩하기 전에 비트 데이터)을 가져올 수도 있습니다.
- 판독기는 사용되지 않은 오류 수정
- 1에 가까움, 데이터를 디코딩할 때 극소수의 오류가 정정됩니다. 디코딩이 고도로 안정적이며, QR 코드가 고품질입니다.
- 0에 가까움, 데이터를 디코딩할 때 다수의 오류가 정정됩니다. 디코딩은 안정적이지만 QR 코드 품질이 열악합니다.
- -1, 오류 정정에 실패했습니다. 디코딩이 실행되지 않았습니다.

스캔 정밀도: 스캔 정밀도를 변경하여 세밀한(작은 QR 코드의 경우 권장) 또는 거친(중간 또는 큰 QR 코드의 경우 권장) 정밀도로 검색 필드를 스캔할 수 있습니다.
최소 점수: QR 코드 판독기가 이 QR 코드 파인더 패턴을 찾습니다:
완벽하게 일치할 경우 패턴 파인더 점수 1이 반환됩니다.
덜 정확하게 일치할 경우 더 낮은 점수가 반환됩니다.
허용되는 최소 점수는 기본적으로 0.65이며, 이를 조정할 수 있습니다.
최소 등방성: QR 코드의 등방성은 직사각형 변형을 나타냅니다.
완벽한 정방형 QR 코드는 등방성이 1(짧은 쪽을 긴 쪽으로 나눈 값, 직사각형이 수직 또는 수평인지 여부)입니다.
EasyQRCode는 등방성이 최저 0.5인 직사각형 QR 코드도 감지할 수 있습니다. 기본최소 등방성은 0.8이며, 0에서 1까지 조정할 수 있습니다.
정사각형 및 직사각형 QR 코드(왼쪽에서 오른쪽 순으로 등방성 = 1, 0.5, 0.5)
모델 및 비전: QR 코드 판독기는 모든 모델 및 모든 버전의 QR 코드를 검색합니다.
검색할 QR 코드의 모델 및 버전 범위 (1 - 40) 을 지정하여 프로세스를 단축할 수 있습니다.