Decodificador de código QR
QRLer um código QR de uma imagem enviada e copiar o texto decodificado.
Nesta página
O que é um decodificador de código QR?#
Um decodificador de código QR faz o inverso de um gerador: dá-lhe uma imagem que contém um código QR e ele devolve o texto codificado lá dentro. Aponte-o a uma captura de tela de um QR de pagamento, a uma foto do autocolante de menu de um restaurante, ou a uma imagem guardada de um bilhete de evento, e ele lê o URL, a string WiFi, o cartão de contacto ou o texto simples que foi cozido na matriz quando o código foi criado.
Por baixo do capô, o decodificador precisa de pixéis, não de um arquivo-imagem. A página desenha a imagem enviada numa tela no navegador, lê o buffer RGBA em bruto e entrega esses pixéis à biblioteca de decodificação, que percorre a matriz — encontrar os três padrões de localização nos cantos, alinhar a grelha e ler os módulos — para reconstruir o fluxo de bytes original. Como esse fluxo de bytes é UTF-8, o texto decodificado volta exatamente como entrou, incluindo escritas não-latinas e emojis.
Tudo acontece no seu navegador. A imagem é processada numa tela local; nunca é enviada para um servidor, pelo que um QR contendo uma senha de WiFi, um URL privado ou dados de contacto pessoais se mantém privado.
Como usar#
- Arraste uma imagem para a zona de largada tracejada à esquerda, ou clique em Enviar para escolher um arquivo. PNG, JPEG e outros formatos de imagem suportados pelo navegador funcionam todos.
- Aparece uma miniatura da imagem por baixo da zona de largada para que se confirme que carregou a certa.
- O texto decodificado aparece imediatamente no painel de saída à direita.
- Clique em Copiar para copiar o texto decodificado, ou em Limpar para remover a imagem e recomeçar.
- A linha de estado reporta o resultado: uma decodificação bem-sucedida, um aviso de que nenhum QR foi encontrado, ou um erro se o arquivo não era uma imagem utilizável.
Se o decodificador não conseguir encontrar um código QR, isso é reportado honestamente como not-found — ver a FAQ para as razões comuns.
Principais recursos#
- Imagem-entra, texto-sai. Sem câmara, sem apontar e esperar — carregue qualquer imagem guardada e o texto é lido numa passagem.
- Qualquer formato de imagem que o navegador leia. PNG, JPEG, GIF, WebP, BMP — se o navegador consegue decodificar o arquivo, a ferramenta consegue desenhá-lo na tela e ler o QR.
- Fiel a UTF-8. O texto decodificado preserva escritas não-latinas e símbolos exatamente como codificados, pelo que chinês, árabe, emojis e payloads de escritas mistas voltam intactos.
- Viagem de ida e volta com o gerador. Um QR produzido pela ferramenta
/en/qr/generate/decodifica de volta para o texto original exato — útil para verificar se um código que criou transporta realmente o payload que se pretendia. - Mantém-se privado. A imagem é desenhada numa tela local e os pixéis são decodificados na página; nada é enviado, pelo que códigos QR sensíveis (WiFi privado, contactos pessoais) nunca saem do seu dispositivo.
- Mensagens de falha honestas. Um arquivo que não é imagem ou um buffer truncado é reportado claramente, e “nenhum QR encontrado” distingue-se de “a imagem não pôde ser lida”, para que se saiba o que corrigir.
Exemplo detalhado#
O teste mais fiável é uma viagem de ida e volta. Gere um QR com a ferramenta geradora companheira — por exemplo, codificando o URL https://example.com — e descarregue o PNG. Depois volte a esta página, largue esse PNG na zona de largada, e o painel de saída lê:
https://example.com
O texto decodificado é byte-a-byte idêntico ao que foi codificado. A mesma viagem de ida e volta funciona para uma string WiFi:
WIFI:T:WPA;S:HomeNetwork;P:supersecret;;
Também funciona numa fotografia de um código QR, não apenas numa renderização limpa: tire uma fotografia a um autocolante de menu impresso com um telefone, transfira o JPEG para aqui, e o decodificador lê o mesmo URL que leria se filmasse o autocolante diretamente. Os padrões de localização nos três cantos são o que deixa a biblioteca localizar e alinhar a matriz dentro de uma fotografia arbitrária.
Perguntas frequentes#
Diz “nenhum QR encontrado” — o que correu mal?#
Normalmente uma de quatro coisas: a imagem é demasiado borrada ou de baixa resolução para os módulos se distinguirem; o QR está parcialmente cortado ou rodado pelo que os três padrões de localização dos cantos não conseguem ser todos encontrados; o código não tem zona silenciosa (a margem branca ao redor) pelo que as margens bleed para o fundo; ou o que enviou não é um código QR de todo — por exemplo, um código de barras 1D, que precisa da ferramenta /en/qr/barcode/. Tente uma imagem mais nítida, melhor recortada, com uma margem branca clara.
Funciona numa fotografia tirada com o meu telefone, ou só em capturas de tela limpas?#
Ambas. O decodificador localiza o QR pelos seus três padrões de localização nos cantos e alinha a grelha em conformidade, pelo que tolera rotação, perspetiva e desfocagem moderada. Uma captura de tela limpa é o caso mais fácil; uma fotografia de telefone razoavelmente nítida de um código impresso também funciona. Luz muito fraca, reflexos fortes ou um código mais pequeno do que algumas dezenas de pixéis de lado é onde começa a falhar.
Que formatos de imagem posso enviar?#
Qualquer um que o navegador consiga decodificar: PNG, JPEG, GIF, WebP, BMP e semelhantes. GIFs animados são lidos a partir da sua primeira frame. Se o arquivo não é uma imagem de todo, ou está corrompido, a ferramenta reporta que não pôde ser lido em vez de fingir decodificar nada.
A imagem ou o texto decodificado são enviados para algum lado?#
Não. A imagem é desenhada numa tela no navegador e o buffer de pixéis é decodificado localmente por uma biblioteca no bundle da página. Nem a imagem nem o texto que contém são enviados — não há backend. Isto torna a ferramenta segura para usar em códigos QR que transportam senhas de WiFi, detalhes de pagamento ou informações de contacto pessoais.
Consegue decodificar outros códigos 2D como Data Matrix?#
Não com esta ferramenta — decodifica especificamente códigos QR padrão. Um código Data Matrix (comum em logística e eletrônica) precisa do caminho /en/qr/data-matrix/, e um código de barras de retalho 1D (EAN, UPC, Code128) precisa da ferramenta /en/qr/barcode/. Parecem superficialmente semelhantes mas usam formas de matriz e algoritmos de decodificação diferentes.