소개
QR 코드가 왜 그렇게 촘촘하게 생겼는지 궁금해서 규격 문서를 읽기 시작했고, 절반이 아무 의미 없는 값이라는 걸 알게 되면서 만든 도구입니다.
무엇을 하는 도구인가요
주소를 넣으면 검정 픽셀을 최대한 덜어낸 QR 코드를 만들어 줍니다. 일반 QR은 데이터 영역의 47퍼센트 정도가 검정인데, 이 도구는 설정에 따라 12퍼센트까지 내려갑니다. 남은 여백에는 줄무늬나 도형을 그려 넣을 수도 있습니다.
원리는 여백이 생기는 원리에 전부 적어두었습니다. 요약하면, 디코더가 읽지 않는 채움값 영역을 찾아내서 마스킹 후 흰색이 되도록 값을 거꾸로 계산합니다.
어떻게 동작하나요
QR 인코더를 외부 라이브러리 없이 직접 구현했습니다. 규격 1부터 10까지, 복원 레벨 L, M, Q, H를 지원합니다. 완전 준수 모드로 돌렸을 때 표준 라이브러리와 비트 하나까지 일치하는 것을 모든 조합에서 확인했습니다.
인코딩부터 이미지 생성, 그리고 만들어진 QR을 실제 디코더로 읽어보는 자가 검증까지 전부 브라우저 안에서 돌아갑니다. 서버로 전송되는 데이터가 없습니다.
주의할 점
비운 QR은 일반 QR보다 스캔 조건에 민감합니다. 어두운 곳이나 작게 인쇄된 경우 읽기에 실패할 수 있습니다. 중요한 용도로 쓸 QR이라면 반드시 실제 기기로 확인하시고, 스캔이 잘 되게 하는 법을 먼저 읽어보시길 권합니다.
채움값 영역의 내용은 규격이 정한 값과 다릅니다. 실제 디코더들은 이 영역을 읽지 않으므로 문제가 없지만, 엄밀한 의미의 규격 완전 준수는 아닙니다. 준수가 필요하다면 도구에서 완전 준수 모드를 선택하세요.
문의
버그 제보나 제안은 문의 페이지로 보내주세요.