Leitura por Upload de Imagem
Quando voce envia uma imagem, ela e desenhada em um elemento canvas HTML oculto. Em seguida, os dados de pixel sao extraidos via getImageData() e passados para a biblioteca jsQR, que analisa os modulos do QR Code e retorna o conteudo decodificado. Todo o processamento ocorre localmente no navegador.
Leitura pela Camera
A API getUserMedia() solicita acesso a camera do dispositivo. Os frames de video sao capturados continuamente e desenhados num canvas. A cada frame, os dados de pixel sao analisados pelo jsQR. Quando um QR Code e detectado, a varredura para automaticamente e o resultado e exibido. O acesso a camera requer HTTPS ou localhost.
Privacidade
Nenhuma imagem ou frame de video e enviado a servidores. Todo o processamento de decodificacao ocorre no seu dispositivo, em memoria, sem qualquer transmissao de dados.
jsQR: A Biblioteca de Decodificacao
O jsQR e uma biblioteca JavaScript pura (sem dependencias) capaz de decodificar qualquer QR Code compativel com o padrao ISO/IEC 18004. Ela analisa a matriz de pixels, localiza os padroes de alinhamento e aplica a decodificacao Reed-Solomon para recuperar os dados mesmo com leve distorcao ou ruido.