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
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.