원문 캡처 · tapirscan.f-kleinicke.de
원문 캡처 · tapirscan.f-kleinicke.de

Tapirscan은 여러 각도로 회전한 바코드도 감지하도록 설계된 브라우저용 스캐너다. 데모에서는 Tapirscan의 네 가지 스캔 수준과 ZXing, ZBar 등 다른 판독기를 같은 이미지에서 비교할 수 있다. 다만 개별 이미지의 결과를 살펴보는 데모이며 종합 벤치마크는 아니다.

데모는 선택한 스캐너들이 같은 이미지 픽셀을 분석하도록 한다. 색이 있는 윤곽선은 감지한 바코드 위치를, 주변 라벨은 판독한 값과 이를 찾은 스캐너를 보여준다. 스캐너 버튼과 결과 카드에서는 판독값과 처리 시간을 확인할 수 있다. Tapirscan의 TS-Low, TS-Med, TS-High, TS-VHigh는 스캔에 들이는 노력과 속도 사이에서 서로 다른 선택지를 제공한다.

데모 이미지나 직접 준비한 사진을 불러오거나 웹캠·휴대전화 카메라를 사용할 수 있다. 이미지를 회전하고 확대·축소할 수 있으며, 두 번 클릭하거나 두 번 탭하면 화면의 중심을 옮길 수 있다. 전체 화면으로 더 크게 볼 수 있고, Adjust에서 사진과 정지 화면의 회전 및 확대·축소를 조절할 수 있다. Pause / freeze는 실시간 카메라 화면을 탐색할 수 있는 이미지로 바꾼다.

PDF를 불러오면 페이지 전체에서 바코드를 감지할 수 있다. Previous page와 Next page로 페이지별 스캔을 진행하며, PDF에 저장된 방향을 사용하고 확대·축소, 회전, 자르기는 적용하지 않는다. PDF 페이지는 브라우저 안에서 렌더링된다.

Detect 메뉴에서는 EAN-13, Retail, Common, All 바코드 형식을 선택할 수 있다. 각 판독기는 지원하는 형식을 스캔한다. Read up to로 입력 해상도를 조절하고, Save image를 누르면 자르기·확대·회전을 반영한 스캐너 입력 이미지를 PNG로 저장할 수 있다. 결과 오버레이는 저장 이미지에 포함되지 않으며, 실시간 모드에서는 가장 최근에 분석한 프레임을 저장한다.

이미지와 PDF, 카메라 프레임은 브라우저에서 처리하며 서버에 업로드하지 않는다. Tapirscan의 소스와 프로젝트 적용 방법은 GitHub에서 확인할 수 있다. 패키지는 npm (JavaScript / TypeScript), PyPI (Python), crates.io (Rust)에서 제공된다.