Selecione, arraste ou cole uma imagem, ou capture uma com a câmera. Os formatos disponíveis dependem do suporte do navegador a BarcodeDetector.
Funciona localmente no seu navegadorSolte uma imagem aqui ou escolha um arquivo de imagem local
A decodificação usa BarcodeDetector do navegador. A imagem permanece neste dispositivo; a câmera só é solicitada quando você a inicia.
Chrome e Edge oferecem hoje o suporte BarcodeDetector mais amplo. Se o seu navegador não o expõe, use um navegador atual compatível e mantenha a imagem local.
Escolha uma imagem, solte-a na página, cole-a da área de transferência ou inicie a câmera e capture um quadro. A leitura usa a própria interface BarcodeDetector do navegador, então a imagem não é enviada: em uma sessão de decodificação medida a página não fez nenhuma requisição com ela e o único tráfego externo foi o de análise do próprio site.
Os formatos disponíveis são os que o seu navegador expõe. A página consulta primeiro BarcodeDetector.getSupportedFormats() e pede apenas a interseção com a lista que conhece; por isso a mesma imagem pode ser decodificada em um navegador e ficar muda em outro.
Medido no Chrome 153 no macOS, os formatos expostos eram QR code, Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-E, ITF, Data Matrix, Aztec e PDF417. Uma imagem QR de teste, um Code 128, um EAN-13 e um Code 39 foram decodificados com o conteúdo exato; uma imagem UPC-A voltou como EAN 13 porque essa compilação não expõe upc_a. O Micro QR também não está na lista: um símbolo Micro QR não foi detectado, enquanto um QR normal com o mesmo conteúdo foi.
Dois QR codes na mesma imagem foram devolvidos em uma única leitura, e os resultados mantêm a ordem informada pelo navegador. Como o decodificador é do navegador, um navegador sem BarcodeDetector avisa ao carregar e se recusa a ler em vez de adivinhar.
O arquivo é lido dentro da página com FileReader e entregue ao BarcodeDetector.detect() como imagem. Imagens arrastadas ou coladas seguem o mesmo caminho; uma captura da câmera é desenhada em um canvas e decodificada a partir dele. O arquivo precisa ser uma imagem e ficar abaixo de 15 MB: um PNG de 30 MB foi recusado com uma mensagem.
Nada é enviado: a imagem nunca faz parte de uma requisição. O tamanho em pixels limita menos do que parece —uma imagem de teste de 9000 x 9000 foi decodificada em cerca de um segundo— e um arquivo que o navegador não consegue ler como imagem agora é informado, em vez de não fazer nada.
A câmera abre apenas quando você pressiona Iniciar câmera, e o navegador pede a permissão nesse momento. O quadro é decodificado ao pressionar Capturar e decodificar, e Parar câmera libera o fluxo e oculta a prévia; não há leitura contínua enquanto o vídeo está ativo.
Cada leitura começa do zero, então pressionar Decodificar imagem duas vezes na mesma imagem dá os mesmos valores, e uma leitura que não encontra nada avisa e deixa a lista vazia. O texto decodificado é exibido como texto: um QR code com marcação HTML é mostrado, não interpretado.