1974 년에 개발 된 Code 39 는 소매 판매에서 가장 많이 볼 수있는 UPC / EAN 시스템이지만 가장 일반적으로 사용되는 기호 또는 바코드 유형 중 하나입니다. Code 39 바코드는 대문자, 숫자 및 일부 기호를 인코딩 할 수 있으며 특수 글꼴을 사용하여 컴퓨터 소프트웨어에서 인쇄하기가 쉽지 않습니다. 이로 인해 상업 및 산업용으로 널리 사용되었습니다 (예 : 회사 ID 배지, 자산 추적, 공장 자동화).
512x512 픽셀 회색조 이미지에서 어떤 방향 으로든 Code 39 바코드를 읽는 가장 짧은 프로그램 또는 기능을 만듭니다. 바코드가 가로 또는 세로로 정렬되지 않았을 수 있습니다.
- 프로그램은 표준 이미지 파일 형식을 허용하고 바코드에 인코딩 된 데이터를 표준 출력 또는 반환 값 (시작 / 정지 문자 제외)으로 생성해야합니다.
- 이미지에 유효한 Code 39 바코드가 둘 이상 포함되어 있지 않으며 공백 문자를 인코딩하는 바코드가 없습니다 (ASCII 32).
- 이미지에 유효한 Code 39 바코드가 표시되지 않으면 프로그램은 단일 물음표 (
?)를 출력해야합니다 .
유효한 바코드를 사용하거나 사용하지 않고 PNG 형식으로 JavaScript 참조 구현 및 테스트 이미지 스위트 를 준비했습니다 . 가장 최근의 웹 브라우저에서 46 개의 테스트 사례 중 3 개만 실패한 참조 구현은 위의 사양을 엄격하게 준수하지 않는 한 가지 가능한 디코딩 알고리즘을 보여주기위한 것입니다.
유효한 제출은 이러한 테스트의 최소 80 % (37/46)를 통과하며 상당히 빠른 CPU (예 : 2.6GHz 쿼드 코어)의 각 이미지에 대해 1 분 이상 걸리지 않습니다. 내 참조 구현은 테스트의 93 %를 통과하고 10 초 내에 각 이미지를 처리합니다 (Chrome을 실행하는 데스크톱 PC에서).