ToolActToolAct

Decodificador QR

Escaneie e decodifique imagens de código QR online. Suporta arrastar e solar, colar da área de transferência. Todo processamento ocorre no navegador.

Carregar imagem de código QR

Arraste e solte uma imagem de código QR aqui

Suporta PNG, JPG, GIF, BMP, WebP e outros formatos de imagem comuns

Você também pode colar uma imagem da área de transferência com Ctrl+V

O que é decodificação de código QR?

O decodificador de QR Code lê uma imagem com QR e extrai os dados armazenados nela. O resultado pode ser uma URL, texto simples, configuração de Wi-Fi, cartão de contato, referência de pagamento ou outra string codificada. Ele é útil para inspecionar um QR antes de abrir, recuperar texto de uma captura de tela, copiar dados de um documento ou ajudar a entender por que um código não é lido corretamente no celular. Um conteúdo decodificado não é automaticamente seguro: links devem ser conferidos antes de visitar, pois podem apontar para phishing, recursos expirados ou redirecionamentos inesperados. A imagem é processada localmente.

Como Usar

Como usar

  1. Clique na área de upload para selecionar uma imagem de código QR, ou arraste e solte uma imagem
  2. Você também pode colar uma imagem da área de transferência usando Ctrl+V (Cmd+V no Mac)
  3. A ferramenta detectará e decodificará automaticamente o conteúdo do código QR
  4. O resultado decodificado aparece abaixo com detecção automática do tipo de conteúdo (URL ou texto)
  5. Clique no botão 'Copiar Resultado' para copiar o conteúdo decodificado para a área de transferência

Dicas de Decodificação

  • Use uma imagem nítida com o código QR completo visível e espaço em branco suficiente ao redor para detecção confiável.
  • Trate os links decodificados com cautela. Visualize o texto e verifique o domínio antes de abrir URLs de códigos QR desconhecidos.

Casos de uso

Decodificar QR codes de imagens carregadas ou coladasArraste uma imagem, selecione um arquivo ou cole uma imagem da área de transferência e a ferramenta a desenha em um canvas oculto antes de ler. Isso é útil quando você tem uma captura de tela, foto ou imagem de QR salva mas não tem um leitor de celular por perto.
Separar URLs de resultados em texto simplesApós a decodificação, o conteúdo é classificado como URL quando pode ser analisado pelo construtor URL do navegador; caso contrário é tratado como texto. Resultados do tipo URL recebem uma ação de abrir em nova aba, enquanto todos os resultados podem ser copiados com a contagem de caracteres exibida.
Verificar a legibilidade do QR durante trabalho de designComo o decodificador trabalha diretamente a partir dos pixels da imagem, ele ajuda a verificar se um QR code gerado ou projetado ainda é legível após redimensionamento, alterações de cores, capturas de tela ou compressão. Leituras falhas produzem um erro claro de QR ausente ou falha de decodificação em vez de saída silenciosa, o que facilita comparar duas variantes de design lado a lado durante uma revisão de marca.
Ler payloads longos de Wi-Fi ou vCardStrings de Wi-Fi decodificadas mostram o SSID, senha e tipo de segurança da imagem sem precisar de câmera do celular, o que é útil ao verificar um cartão de rede para impressão. Resultados de vCard podem ser copiados e colados em um formulário de contato para importação manual.
Inspecionar QR codes antes de abrir o linkSempre leia a URL decodificada antes de escanear a imagem diretamente com o celular, pois QR codes podem esconder links encurtados, páginas de phishing ou redirecionamentos expirados. Um resultado em texto simples sem ação de clique é uma prévia mais segura que um redirecionamento com um toque. Navegadores modernos baseados em Chromium expõem a API BarcodeDetector que é rápida mas não lida bem com Micro-QR ou códigos danificados, então a página recorre a uma biblioteca JS quando BarcodeDetector está ausente, enquanto a correção de erros Reed-Solomon nos níveis M, Q ou H ainda pode recuperar uma foto borrada, mas códigos de alta densidade ou baixo contraste frequentemente falham e precisam de uma nova captura com mais luz e menos inclinação. Micro-QR codes, que possuem apenas um marcador de posição em um canto, são uma família diferente e geralmente exigem um scanner dedicado.

Princípio técnico

A decodificação de código QR é um pipeline de processamento de imagens em múltiplas etapas que localiza o código em uma fotografia ou captura de tela, corrige a distorção de perspectiva, aplica limiarização para preto e branco, lê a grade de módulos, aplica correção de erros e decodifica os dados de acordo com o modo de codificação. Esta ferramenta usa a biblioteca jsQR, que implementa o pipeline completo em JavaScript executado na thread principal do navegador. A primeira etapa é localizar os três padrões de localização — os marcadores distintos 7x7 quadrado-dentro-de-quadrado-dentro-de-quadrado nos cantos superior esquerdo, superior direito e inferior esquerdo de todo código QR. O jsQR escaneia a imagem em busca de sequências de pixels pretos e brancos alternados que correspondam à proporção 1:1:3:1:1 característica de uma seção transversal de padrão de localização, independentemente da rotação. Uma vez que três padrões de localização são encontrados, seus centroides definem o quadrilátero delimitador do código. A correção de perspectiva transforma o quadrilátero em uma grade quadrada usando uma matriz de homografia calculada a partir dos quatro pontos de canto. Isso é essencial porque códigos QR raramente são fotografados de frente — a correção desdistorce o código para que cada módulo (o quadrado preto ou branco representando um bit) caia em uma grade regular. O tamanho do módulo é determinado pelas dimensões do padrão de localização e pelo número da versão, que é lido das faixas de informação de formato adjacentes aos padrões de localização. A binarização da imagem converte os valores de pixels em tons de cinza para preto e branco puro. O jsQR usa uma abordagem de limiarização local: em vez de um único limiar global (que falha sob iluminação irregular ou sombras), ele calcula limiares para pequenas regiões da imagem, tornando-o robusto a gradientes e vinheta comuns em fotos de smartphone. A correção de erros usa códigos Reed-Solomon conforme especificado na ISO/IEC 18004:2015. Códigos QR suportam quatro níveis de correção de erros: L (~7% de recuperação), M (~15%), Q (~25%) e H (~30%). Os code words de dados e os code words de correção de erros são entrelaçados em blocos; o jsQR realiza o cálculo de síndrome e aplica o algoritmo Berlekamp-Massey para localizar e corrigir erros dentro da capacidade nominal do código. Se o dano exceder o nível de correção, a decodificação falha em vez de retornar dados corrompidos. Por fim, o fluxo de bits decodificado é interpretado de acordo com o indicador de modo de codificação nos primeiros quatro bits: numérico (0001, 10 bits por 3 dígitos), alfanumérico (0010, 11 bits por 2 caracteres), byte (0100, 8 bits por caractere, tipicamente UTF-8 ou Latin-1), kanji (1000, 13 bits por caractere usando Shift JIS) ou ECI (0111, Extended Channel Interpretation para especificação de conjunto de caracteres). A ferramenta exibe a string decodificada e detecta automaticamente se é uma URL (tentando a análise via new URL()) ou texto simples.

  • Detecção de padrão de localização: o jsQR escaneia linhas em busca de sequências de pixels pretos/brancos alternados que correspondam à proporção 1:1:3:1:1 — três desses padrões em ângulos aproximadamente retos entre si confirmam a presença e orientação de um código QR independentemente da rotação.
  • Correção de perspectiva: uma matriz de homografia calculada a partir dos quatro pontos de canto detectados mapeia o quadrilátero inclinado em uma grade quadrada — esta etapa é essencial porque fotos do mundo real raramente capturam códigos QR de frente.
  • Binarização adaptativa: a limiarização local divide a imagem em pequenas regiões e calcula limiares por região, tornando o decodificador robusto a iluminação irregular, sombras e gradientes que derrotariam um limiar global.
  • Correção de erros Reed-Solomon (ISO/IEC 18004): quatro níveis (L/M/Q/H) proporcionam 7-30% de recuperação de dados — o algoritmo Berlekamp-Massey localiza posições de erro e o algoritmo Forney calcula magnitudes de correção; se o dano exceder o nível, a decodificação falha de forma limpa.
  • Detecção do modo de codificação: os primeiros quatro bits de dados indicam o modo — numérico (0001, eficiente para dígitos), alfanumérico (0010, para A-Z 0-9 e símbolos), byte (0100, para dados UTF-8/Latin-1 arbitrários), kanji (1000, para Shift JIS) e ECI (0111, para especificação de conjunto de caracteres).
  • Versão e grade de módulos: versões de código QR variam de 1 (21x21 módulos) a 40 (177x177), com cada versão adicionando 4 módulos por lado — a versão é lida das faixas de informação de formato próximas aos padrões de localização, e a contagem de módulos determina a densidade da grade de amostragem.
  • Execução local no navegador: a imagem é desenhada em um elemento Canvas oculto, getImageData() extrai o buffer bruto de pixels RGBA, e o jsQR o processa inteiramente na thread principal do navegador — nenhuma imagem é enviada a qualquer servidor, e o canvas é coletado pelo garbage collector após a conclusão da decodificação.

Exemplos

QR code de URL

Conteúdo lido: https://example.com
Tipo:        URL
Ação:        o leitor abre o link no navegador do sistema após confirmação

QR code de texto puro

Conteúdo lido: Este é um conteúdo de texto
Tipo:        Texto
Ação:        o leitor copia o texto para a área de transferência ou o exibe em uma tela de resultado

QR code com credenciais de WiFi

Conteúdo lido: WIFI:T:WPA;S:NetworkName;P:Password;;
Tipo:        WiFi (WPA2)
Ação:        celulares que reconhecem o formato perguntam 'Conectar a NetworkName?' e entram na rede com a senha fornecida

Cartão de contato vCard

Conteúdo lido: BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nTEL:+1-555-0142\nEMAIL:jane@example.com\nEND:VCARD
Tipo:        Cartão de contato
Ação:        celulares oferecem criar uma nova entrada na agenda a partir dos campos lidos

Perguntas frequentes

A imagem é enviada para a decodificação?

Não. A decodificação roda no seu navegador via WebAssembly ou JS puro. Os bytes da imagem são lidos localmente; nada é enviado a um servidor.

Quais métodos de entrada são suportados?

Envie um arquivo, cole uma imagem da área de transferência ou arraste e solte um arquivo de imagem. A imagem é processada no seu navegador e nunca é enviada a um servidor.

O que o decodificador retorna?

O texto decodificado bruto. A página detecta se o resultado é uma URL ou texto puro e mostra um selo correspondente. Se for uma URL, um botão Abrir URL é disponibilizado.

Por que meu QR não decodifica?

Causas comuns: borrão, baixo contraste, brilho/reflexo, inclinação de perspectiva ou o código está parcialmente coberto. Aproxime o corte, aumente o brilho, segure o celular firme a 90° em relação à superfície. QR codes com nível de erro L tolera quase nenhum dano; o nível H tolera oclusão significativa.

Ele consegue decodificar QR de capturas de tela e PDFs?

Capturas de tela costumam decodificar bem porque têm contraste perfeito e zero distorção de perspectiva. Para PDFs, faça uma captura de tela da seção do QR primeiro e depois envie a imagem.

Devo abrir toda URL que o QR contém?

Não. QR codes são um vetor conhecido de phishing ('quishing') porque a URL fica escondida dentro do visual. Inspecione a URL decodificada antes de abrir - a página mostra a URL completa para você ler o domínio. Cuidado com domínios com erros de digitação, endereços IP e URLs encurtadas que escondem o destino real.

Ele decodifica vários QRs em uma imagem só?

A página detecta um QR code por imagem. Se você tem uma imagem com vários códigos, recorte cada um separadamente e envie individualmente para resultados mais confiáveis.