Semanas da Black Friday: todas as assinaturas com um desconto de 40 %! 40% de desconto em todos os planos pagos · válido até 30.11.2026 Ver preços →
Logo

Como funciona realmente um código QR? A tecnologia por trás do mosaico de píxeis

29.08.2026 11 min Tempo de leitura
Como funciona realmente um código QR? A tecnologia por trás do mosaico de píxeis

Basta uma leitura rápida com a câmara do smartphone – e abre-se um site, o Wi-Fi liga-se ou uma vCard é guardada na agenda. O que no dia a dia parece magia é, na verdade, uma combinação extremamente sofisticada de informática, matemática e ótica.

Mas como é que um endereço web comprido ou um texto se transforma, afinal, neste padrão preto e branco tão característico? Onde estão escondidos os dados no código, e porque é que a câmara reconhece o conteúdo mesmo quando o código QR está inclinado ou ligeiramente danificado?

Neste artigo, explicamos passo a passo como funciona o código Quick Response (QR).

1. O princípio básico é simples: os caracteres são convertidos em zeros e uns.

Os computadores falam a linguagem binária, ou seja, só entendem 0 e 1. Antes de a informação poder ser representada como padrão no código QR, tem por isso de ser convertida em bits. Para poupar espaço, o software de QR usa vários modos de codificação:

  1. Modo numérico: só para números (0–9). Muito eficiente, porque três algarismos são agrupados em dez bits.
  2. Modo alfanumérico: para algarismos, letras maiúsculas e alguns caracteres especiais.
  3. Modo byte: para texto em geral, letras minúsculas, caracteres acentuados (UTF-8) e URL.
  4. Modo kanji: especialmente comprimido para caracteres japoneses.

Um olhar nos bastidores mostra como «QR» se torna um código binário.

Para perceberes quão eficiente um código QR é com o espaço, vejamos o modo alfanumérico. Neste modo, cada carácter recebe um valor numérico fixo (A = 10, B = 11, ..., Q = 26, R = 27).

Para não ter de guardar cada letra individualmente, o algoritmo junta sempre dois caracteres.

  1. Calculam-se os valores de Q (26) e R (27): $26 \times 45 + 27 = 1197$.
  2. O número 1197 é representado como número binário de 11 bits: 10010101101.

Assim, as duas letras QR dão exatamente 11 bits de zeros e uns. Se no fim de uma sequência sobrar uma única letra, ela é codificada com 6 bits (p. ex., $Q \rightarrow 26 \rightarrow 011010$).

2. O caminho do código binário até ao padrão final

Depois de o teu texto ter sido traduzido numa sequência de zeros e uns, passa por vários passos técnicos de processamento:

[ A tua introdução ] (p. ex., «https://qrown.io»)
│
▼
[ Análise do modo & codificação binária ] (Os caracteres são convertidos em 0 e 1)
│
▼
[ Cabeçalho & metadados ] (Junta-se a informação sobre o comprimento dos dados e o modo)
│
▼
[ Cálculo da correção de erros ] (São gerados códigos Reed-Solomon)
│
▼
[ Colocação na grelha ] (Os bits são distribuídos de baixo à direita para cima)
│
▼
[ Máscara ] (Um filtro matemático evita padrões problemáticos)
│
▼
[ Código QR pronto ] (Preto = 1, branco = 0)

Passo A: dados técnicos adicionais e correção de erros

A sequência de zeros e uns com o teu conteúdo não é a única parte do código. Antes dos dados úteis é colocado um cabeçalho. Ele diz ao leitor: «Atenção, aí vem um texto em modo byte com 25 caracteres!»

Depois, um processo matemático – a chamada correção de erros Reed-Solomon – calcula bits de paridade adicionais. Estes garantem que o código continua legível mesmo que até cerca de 30% dos dados (nível H) estejam tapados ou danificados (p. ex., por um logótipo de empresa colocado ao centro).

Passo B: distribuição na grelha (módulos)

Os quadradinhos individuais do código QR chamam-se módulos. Regra geral:

  1. 0 = módulo branco
  2. 1 = módulo preto

No entanto, os bits não são simplesmente escritos linha a linha, de cima à esquerda para baixo à direita. A codificação dos dados começa no canto inferior direito e serpenteia pela grelha em colunas estreitas de duas, alternando entre subir e descer. As zonas funcionais reservadas (como os cantos) são saltadas automaticamente.

É por isso que nunca consegues apontar para um único quadrado preto no código QR pronto e dizer: «Este é o ‹h› do endereço web.»

Passo C: o truque da máscara (porque 1 nem sempre é preto)

Se os bits fossem desenhados diretamente, poderiam surgir por acaso grandes blocos pretos, longas faixas brancas ou padrões enganadores que confundiriam a câmara.

Por isso, o software aplica um padrão de máscara sobre a matriz. Existem ao todo oito máscaras normalizadas. Através de uma operação matemática XOR, a máscara inverte determinados bits:

  1. 0 passa a 1 (branco passa a preto)
  2. 1 passa a 0 (preto passa a branco)

O leitor usa a informação de formato junto aos quadrados dos cantos para saber que máscara foi usada e, ao descodificar, desfaz este passo numa fração de segundo.

3. A anatomia de um código QR: o que significam os vários padrões?

Olhando com mais atenção, um código QR parece um mosaico aleatório. Na realidade, porém, cada elemento está posicionado rigorosamente segundo a norma ISO. Podes imaginar a sua estrutura como a anatomia de um rosto: certas características estão sempre no mesmo sítio, para que um smartphone reconheça o código à primeira vista.

Um código QR clássico divide-se nas seguintes zonas principais:

1. Os três grandes quadrados dos cantos (padrões de deteção de posição/finder patterns)

  1. Ficam em cima à esquerda, em cima à direita e em baixo à esquerda.
  2. Para que servem: são a característica mais marcante do código QR. Estes três pontos de ancoragem sinalizam de imediato à câmara: «Atenção, está aqui um código QR!» Indicam instantaneamente ao software a posição, o tamanho e o ângulo de inclinação, para que a câmara perceba se o smartphone está a ser segurado direito ou inclinado.

2. As linhas pontilhadas de ligação (padrões de temporização/timing patterns)

  1. Correm entre os três quadrados dos cantos – na horizontal entre o de cima à esquerda e o de cima à direita, na vertical entre o de cima à esquerda e o de baixo à esquerda. Definem a grelha (tamanho dos módulos); a orientação vem dos três quadrados dos cantos.
  2. Para que servem: estas linhas são formadas por módulos pretos e brancos alternados. Funcionam como uma régua para o leitor: com estes pontos, o software calcula o tamanho da grelha (da versão 1, com 21 × 21 células, até à versão 40, com 177 × 177 células).

3. Os pequenos quadrados interiores (padrões de alinhamento/alignment patterns)

  1. Ficam na zona inferior direita e, em códigos mais complexos, distribuídos por todo o padrão.
  2. Para que servem: estes quadrados mais pequenos funcionam como miras digitais. Ajudam o leitor a compensar distorções, por exemplo quando o código QR está impresso numa lata de refrigerante curva ou o folheto ficou amarrotado.

4. A zona de controlo (informação de formato)

  1. Fica imediatamente junto aos três grandes quadrados dos cantos.
  2. Para que serve: é aqui que estão guardadas as instruções técnicas para o leitor. Nestes poucos píxeis estão codificadas duas informações decisivas: 1. que nível de correção de erros (L, M, Q ou H) é usado e que padrão de máscara foi aplicado aos dados.

5. A margem de proteção invisível (zona de silêncio/quiet zone)

  1. É a margem totalmente branca e sem impressão à volta de todo o código QR.
  2. Função: para que a câmara capte com precisão os limites exteriores do código, precisa de uma distância de segurança em relação a texto, imagens ou grafismos de fundo. Esta margem tem de ter pelo menos quatro módulos (larguras de píxel). Se faltar a zona de silêncio, a câmara muitas vezes recusa-se a ler o código.

4. O que acontece quando lês um código QR com o smartphone?

Quando apontas a câmara para um código QR, acontecem em segundo plano os seguintes passos:

  1. Procura: a câmara procura na imagem de vídeo os três grandes padrões de posição.
  2. Transformação: o software calcula a perspetiva e «endireita» digitalmente uma imagem que possa ter sido captada de lado.
  3. Remoção da máscara: o sistema lê a informação de formato, reconhece o padrão de máscara e retira-o.
  4. Aplicação da correção de erros: riscos, desfocagem ou partes tapadas são corrigidos matematicamente.
  5. Descodificação: os zeros e uns são convertidos de volta em texto legível, números ou comandos, segundo as regras do modo.
  6. Execução da ação: o smartphone reconhece o tipo de dados (p. ex., https:// para um URL, WIFI: para dados de acesso ou BEGIN:VCARD para contactos) e sugere a aplicação adequada.

Mergulho técnico: as perguntas mais importantes explicadas

É preciso ligação à internet para ler um código QR?

Não, não para a leitura em si. A conversão dos píxeis em texto acontece localmente no teu smartphone. Se o conteúdo for texto simples, uma vCard ou dados de acesso ao Wi-Fi, tudo funciona completamente offline. Só precisas de ligação de dados quando o código contém um endereço web (URL) e o queres abrir.

Um código QR é encriptado?

Não. Um código QR é apenas codificado, não encriptado. Qualquer leitor de códigos QR consegue ler os dados que contém. Informação confidencial, como palavras-passe, dados bancários ou PIN pessoais, nunca deve por isso ser guardada sem proteção num código QR normal.

Porque é que alguns códigos QR parecem muito mais finos e densos do que outros?

Quantos mais dados estiverem guardados diretamente no código – por exemplo, um texto longo em vez de um link curto –, mais módulos são necessários. O código passa então para uma versão superior (da versão 1, com 21 × 21 módulos, até à versão 40, com 177 × 177 módulos).

Estático vs. dinâmico: porque é que os códigos dinâmicos ficam mais compactos

  1. Códigos QR estáticos: guardam diretamente o destino final (p. ex., um URL com 150 caracteres). O padrão fica muito denso e mais difícil de ler.
  2. Códigos QR dinâmicos: guardam apenas um link de redirecionamento ultracurto (p. ex., qron.ch/12da7). O código continua visualmente muito simples e fácil de ler, e o destino real pode ser alterado no servidor a qualquer momento, sem ter de reimprimir o código.

Lista de verificação para códigos QR que funcionam

Se crias os teus próprios códigos QR ou os mandas desenhar, tem em conta estes princípios básicos:

  1. Usa links curtos: recorre a códigos QR dinâmicos para manter baixa a densidade de módulos.
  2. Mantém o contraste: escolhe um padrão escuro sobre fundo claro (códigos invertidos podem dar problemas a algumas câmaras mais antigas).
  3. Respeita a margem: deixa pelo menos 4 módulos de distância de texto, linhas de corte ou grafismos.
  4. Ajusta a correção de erros: um logótipo gasta reserva de correção de erros – quanto maior o logótipo, mais alto deve ser o nível. Nos códigos dinâmicos, o QRown define o nível sozinho e verifica a legibilidade depois de desenhares o código.

Perguntas frequentes (FAQ)

Por quantos módulos é formado um código QR?

Os códigos QR mais pequenos (versão 1) têm 21 × 21 módulos, ou seja, 441 células. A versão maior (versão 40) tem uma grelha de 177 × 177 módulos, ou seja, 31 329 células.

Um código QR pode conter vírus ou malware?

Um código QR em si contém apenas texto e não consegue executar diretamente código malicioso. Pode, no entanto, levar a um site de phishing manipulado ou a uma transferência maliciosa. Por isso, verifica sempre a pré-visualização do domínio no smartphone antes de o abrires!

Que modo poupa mais espaço num código QR?

O modo mais eficiente é o numérico (só números), seguido do alfanumérico. Já o modo byte (para URL em geral e caracteres especiais) é o que precisa de mais espaço por carácter.

Mais artigos