바코드 읽기
바코드(EAN 13 심볼로지)
EasyBarCode(이지바코드)는 바코드를 자동으로 찾아서 판독할 수 있습니다.
프로토타입 작업 중이거나 자동 모드의 결과가 만족스럽지 못할 경우 수동으로 위치 탐색을 수행할 수 있습니다.

바코드란 문자열을 나타내는 다양한 굵기의 병렬 막대와 공백의 2D 패턴입니다. 바코드는 문자 집합과 인코딩 규칙을 지정하는 인코딩 규칙(심볼로지)에 따라 배열됩니다.
- 바코드는 흰색 배경에 검정색 잉크 또는 반전된(검정색 배경에 흰색 잉크) 형태가 될 수 있습니다.
- 바코드에는 모듈 너비(가장 작은 막대 또는 공백의 두께)의 최소 10배에 해당하는 여백 구간이 선행 및 후행되어야 합니다.
- 막대의 아래와 위에도 몇 픽셀의 여백이 둘러싸야 합니다.
- 막대와 공백 너비는 2픽셀 이상이어야 합니다.

심볼로지는 바코드의 인코딩 방식을 정의합니다.
심볼로지는 StandardSymbologies 또는 AdditionalSymbologies 매개변수에서 활성화할 수 있습니다.
기본적으로 표준 심볼로지가 활성화됩니다.
- 코드 39
- 코드 128
- 코드 2/5 5 인터리브
- Codabar
- EAN 13*
- EAN 128
- MSI
- UPC A*
- UPC E
* EAN 13 및 UPC A는 주변 숫자의 레이아웃에만 차이가 있습니다.
지원되는 추가 심볼로지는 다음과 같습니다.
- ADS Anker
- 바이너리 코드
- 코드 11
- 코드 13
- 코드 32
- 코드 39 확장형(코드 39의 상위 집합)
- 코드 39 축소형(코드 39의 하위 집합)
- 코드 93
- 코드 93 확장형
- 코드 412 SEMI
- 코드 2/5 3 Bars Datalogic
- 코드 2/5 3 Bars Matrix
- 코드 2/5 5 Bars IATA
- 코드 2/5 5 Bars Industry
- 코드 2/5 5 압축형
- 코드 2/5 5 반전형
- 코드 BCD 매트릭스
- 코드 C.I.P
- 코드 STK
- EAN 8
- IBM Delta Distance A
- Plessey
- Telepen

체크섬 문자를 사용하면 리더에서 심볼로지에 따른 바코드 유효성을 검사할 수 있습니다.
- 체크섬이 필수 사항이며 리더로 검사해야 할 수 있습니다.
- 체크섬이 필수 사항이지만 검사가 필요하지 않을 수 있습니다.
- 체크섬과 검증이 모두 선택적일 수 있습니다.
VerifyChecksum을 통해 체크섬 검증을 활성화 또는 비활성화(기본값)할 수 있습니다.
바코드 구조(코드 39)

자동 모드 판독 알고리즘은 시야각 내의 바코드를 찾아서 Read(판독)합니다.
여러 개의 바코드가 있을 경우, 직선형 핸드헬드 바코드 리더와 같이 하나만 판독됩니다.
판독하기 전에 StandardSymbologies 또는 AdditionalSymbologies 속성에서 디코딩 심볼로지를 지정해야 합니다.
모노 심볼로지 모드는 예상 심볼로지 유형을 사용하여 바코드를 판독하고 인코딩 정보(판독 가능한 경우) 또는 실패 원인(판독되지 않을 경우)을 보고합니다. 문자열에 대해 오직 하나의 해석만이 가능합니다.
디코딩된 바코드
참고: 바코드에 \0x00 문자가 있을 경우, std::.string::.c_str 메서드를 사용하지 않아야 합니다(C-문자열이 \0x00 문자에 의해 종결되므로). C-문자열 대신 문자에 대해 반복기를 사용해야 합니다.


자동 위치 찾기가 실패하거나 프로토타입 관련 목적이라면 사용자가 바코드 위치와 판독 영역을 지정하여 수동으로 코드를 찾을 수 있습니다.
- 바코드 위치는 바코드 주변의 윤곽 상자 또는 매개변수를 통해 그래픽 방식으로 지정할 수 있습니다. 이미지에 여러 기호가 나타날 경우 하나씩 차례로 처리할 수 있습니다.
- 바코드의 판독 영역은 판독되는 영역을 의미합니다. 판독 영역은 바코드 윤곽 상자 너비보다 더 넓고, 바코드 윤곽 상자 높이보다는 덜 높아야 합니다. 또한 기울어진 막대에 대응하여 바코드 윤곽 상자에 대해 회전시킬 수도 있습니다(고급 모드!).
![]() |
![]() |
윤곽 상자 - 그래픽 표시(수동 위치 찾기) | 판독 영역 - 그래픽 표시(수동 위치 찾기) |

Detect(감지)를 사용하여 NumEnabledSymbologies 속성에서 사용 가능한 심볼로지의 수를 보고하고, 확률 내림차순으로 데이터 내용을 열거할 수 있습니다.
그 다음 루프 내에서 Decode(디코드) 메서드를 호출하고, GetDecodedSymbology를 사용하여 확률의 내림차순으로 성공적인 심볼로지의 목록을 차례로 둘러볼 수 있습니다.