QR Code NW

Como funciona um QR Code: a anatomia por trás dos quadradinhos

Date Published

Todo mundo usa QR Code e quase ninguém sabe o que está olhando. Aquele emaranhado de quadradinhos não é aleatório: cada região tem função específica, e entender essa estrutura explica de forma direta por que um código não lê, por que outro fica denso demais e por que é possível colar um logo no meio sem quebrar tudo.

A ideia central: é só texto desenhado

Um QR Code não guarda arquivos, não se conecta a nada e não faz nada sozinho. Ele guarda texto. Quando esse texto começa com "https://", o celular entende que é um endereço e oferece abrir o navegador. Quando começa com "WIFI:", entende que são credenciais de rede. Quando é só texto comum, mostra o texto na tela.

Toda a inteligência está no leitor, não no código. O código é papel — bem organizado, mas papel.

Padrões de posição
localizam e orientam o código
Alinhamento
corrige distorção
Temporização
delimita cada módulo
Zona de silêncio
margem livre de 4 módulos
Dados + correção de erro
As regiões de um QR Code e a função de cada uma.

Os três quadrados grandes: padrões de posição

Aqueles três quadrados nos cantos superior esquerdo, superior direito e inferior esquerdo são os padrões de detecção de posição. Eles são a primeira coisa que o leitor procura.

A proporção deles é deliberada: escaneando uma linha reta através de qualquer um deles, em qualquer ângulo, encontra-se sempre a sequência preto-branco-preto-branco-preto na razão 1:1:3:1:1. Essa assinatura é rara em imagens naturais, o que permite ao software localizar o código instantaneamente dentro de uma foto cheia de outras coisas.

Como são três e não quatro, o leitor também descobre a orientação: o canto que não tem quadrado é o inferior direito. É por isso que um QR Code lê de cabeça para baixo, de lado, ou torto — o software corrige a rotação sozinho.

Os outros elementos estruturais

  • Padrão de alinhamento — os quadradinhos menores espalhados pelo código. Corrigem distorção quando o código está em superfície curva ou fotografado em ângulo. Códigos muito pequenos não têm nenhum; os grandes têm vários.
  • Linhas de temporização — as fileiras alternadas de preto e branco que ligam os quadrados de posição. Funcionam como uma régua, dizendo ao leitor onde termina um módulo e começa o próximo.
  • Informação de formato — a faixa em volta dos quadrados de posição. Guarda qual nível de correção de erro foi usado e qual máscara foi aplicada.
  • Zona de silêncio — a margem branca ao redor de tudo. Não é decoração: a especificação exige o equivalente a 4 módulos livres. Invadir essa margem é uma das causas mais comuns de falha de leitura.

Módulos e versões: por que alguns códigos são densos

Cada quadradinho individual se chama módulo. O tamanho da grade é definido pela versão do código, que vai de 1 a 40:

  • Versão 1: grade de 21 × 21 módulos, cabem cerca de 25 caracteres.
  • Versão 10: grade de 57 × 57, cerca de 270 caracteres.
  • Versão 40: grade de 177 × 177, até 4.296 caracteres alfanuméricos.

Aqui está o ponto prático: mais conteúdo significa mais módulos no mesmo espaço físico. Um código de versão 40 impresso em 3 cm tem módulos de menos de 0,2 mm — menores do que muitas impressoras conseguem reproduzir com nitidez e do que muitas câmeras conseguem distinguir.

É por isso que um QR Code de telefone lê de longe com facilidade e um QR Code de contato lotado de campos falha no mesmo cartão. Não é qualidade do gerador: é quantidade de informação.

Correção de erro: por que o logo no meio funciona

O QR Code usa um algoritmo de correção chamado Reed-Solomon, o mesmo tipo de matemática que permite um CD arranhado continuar tocando. A informação é gravada com redundância, então uma parte do código pode ser destruída e o leitor ainda reconstrói o conteúdo original.

São quatro níveis:

  • L (Low) — recupera cerca de 7% de dano. Gera o código mais limpo.
  • M (Medium) — cerca de 15%. É o padrão da maioria dos geradores.
  • Q (Quartile) — cerca de 25%.
  • H (High) — cerca de 30%. Gera o código mais denso.

É exatamente essa redundância que permite colocar um logo no centro: você está deliberadamente destruindo parte do código e contando com a correção para compensar. Por isso todo gerador sério aplica nível H quando há logo — e por isso existe um limite. Cobrir mais de 30% da área ultrapassa a capacidade de recuperação e o código morre.

A troca é direta: quanto maior a correção, mais espaço é gasto com redundância e menos sobra para o conteúdo, o que aumenta a densidade. Correção alta em um vCard grande é a combinação que mais gera código ilegível.

O que isso muda na prática

  • Encurte o conteúdo sempre que possível — é o único jeito de reduzir a densidade de verdade.
  • Respeite a margem branca. Ela é parte do código, não sobra de layout.
  • Se for usar logo, mantenha-o pequeno e centralizado, e teste em dois aparelhos.
  • Dimensione a impressão pela regra dos 10 para 1: o lado do código deve ter no mínimo um décimo da distância de leitura.

Quer ver a densidade mudar na prática? Abra o gerador de texto e vá acrescentando frases: o código ganha módulos visivelmente a cada salto de versão.