Como funcionam os códigos QR? Para que serve cada parte do padrão
Um telemóvel lê um código QR em cerca de um décimo de segundo, e o processo é sempre o mesmo: encontrar os três quadrados dos cantos, deduzir a grelha, ler uma faixa que diz como está codificado o resto, desfazer um padrão de mascaramento e, por fim, remontar os dados e reparar o que estiver danificado.
Cada quadrado do padrão pertence a um desses passos. Fica aqui a qual.
Os três quadrados dos cantos: encontrar e orientar
Os quadrados grandes em três cantos são os padrões de localização. São a primeira coisa que um leitor procura, e a sua proporção de faixas escuras e claras — 1:1:3:1:1 ao longo de qualquer linha que passe pelo meio — é propositadamente rara em imagens comuns, para que a câmara os detete numa fotografia atafulhada.
Três, e não quatro, é o truque todo: três cantos definem qual é o lado de cima. É por isso que um código lê ao contrário e na diagonal, e é por isso que tapar um canto o mata de imediato, por muita correção de erros que se tenha pago.
As linhas pontilhadas: fixar a grelha
Entre os padrões de localização correm linhas simples de módulos escuros e claros alternados — os padrões de sincronismo. Dizem ao leitor quantos módulos o código tem de largura, para poder assentar uma grelha sobre a imagem e saber onde cai cada célula. Sem eles, uma fotografia ligeiramente rodada perderia o alinhamento a meio do código.
Os quadrados pequenos: corrigir uma superfície curva
A partir da versão 2, aparecem dentro do corpo do código padrões de alinhamento mais pequenos. São pontos de referência que permitem ao leitor desfazer a distorção — um código numa garrafa, num rótulo curvo, ou numa fotografia tirada de lado. Quanto maior o código, mais deles transporta.
A faixa ao lado dos cantos: as definições
Enrolada à volta dos padrões de localização está a informação de formato: o nível de correção de erros e qual dos oito padrões de máscara foi aplicado. Lê-se antes dos dados, porque sem ela os dados não se conseguem interpretar. Tem a sua própria proteção, separada do nível escolhido — razão pela qual o famoso «30 % de danos» nunca se lhe aplicou.
Mascaramento: porque é que dois códigos para a mesma ligação são diferentes
Os dados codificados em bruto produzem muitas vezes grandes áreas vazias ou riscas, e isso confunde a câmara — pior, pode imitar um padrão de localização. Por isso o codificador faz XOR dos dados com um de oito padrões de máscara, pontua o resultado quanto a características indesejáveis e fica com o melhor.
É por isso que o mesmo endereço produz padrões visivelmente diferentes em ferramentas diferentes, e é por isso que não se «lê» nada a olho na disposição dos pontos.
Como os dados são dispostos
Os dados escrevem-se em colunas com dois módulos de largura, começando no canto inferior direito e serpenteando para cima, depois para baixo, depois para cima — à volta dos padrões de função, nunca através deles. Existem quatro modos de codificação, e o codificador escolhe o mais apertado que sirva: numérico, alfanumérico, byte (que cobre os endereços comuns) e kanji.
O tamanho exprime-se como versão, de 1 a 40 — de 21×21 módulos até 177×177, mais quatro módulos por lado em cada degrau. No topo, um código de versão 40 com a correção de erros mais baixa leva cerca de 7089 dígitos ou 4296 caracteres alfanuméricos. Na prática ninguém imprime isso: é uma grelha densa que nenhuma câmara de telemóvel resolve a um tamanho sensato.
Correção de erros: a segunda cópia
Parte de cada código são dados de recuperação Reed-Solomon — uma segunda cópia matemática que permite ao leitor reconstruir o que não consegue ler. Há quatro níveis: cerca de 7 %, 15 %, 25 % e 30 % da área de dados recuperável, de L a H.
É essa dotação que paga um logótipo ao meio, um risco, chuva sobre um autocolante. É também a razão por que um nível mais alto torna o padrão mais denso: os dados de recuperação têm de caber algures.
A margem branca faz parte do código
A zona de silêncio — quatro módulos de espaço livre em redor — não é enfeite. É assim que o leitor sabe onde acaba o código e começa o mundo. Uma moldura decorativa desenhada rente ao padrão elimina-a, e esta é uma das razões mais frequentes para um belo código impresso não ler.
O que um código dinâmico contém de facto
Um equívoco comum é achar que um código QR dinâmico guarda o destino e se atualiza sozinho. Não pode: o padrão fica fixo no momento em que é impresso.
O que ele grava é uma ligação curta — um domínio e um punhado de caracteres. Lê-lo abre essa ligação curta, que reencaminha para onde o código aponta naquele momento. Muda-se o destino e todos os exemplares impressos acompanham, porque no padrão impresso não há nada que mude.
Há um efeito secundário prático que vale a pena saber: como uma ligação curta tem apenas algumas dezenas de caracteres, o código mantém-se numa versão baixa, com módulos grandes e robustos. Um código estático a transportar um endereço comprido com parâmetros de campanha precisa de uma grelha muito mais densa para o mesmo tamanho físico — e é exatamente esse o código que falha num cartaz.
Respostas rápidas
- O que são os três quadrados grandes? Padrões de localização. Permitem ao leitor encontrar o código e perceber a sua orientação.
- Porque é que um código lê ao contrário? Porque três cantos chegam para definir qual é o lado de cima.
- O que são os quadrados pequenos lá dentro? Padrões de alinhamento, que corrigem a distorção em superfícies curvas ou inclinadas.
- Porque é que dois códigos para a mesma ligação são diferentes? Mascaramento. O codificador escolhe o que pontua melhor entre oito padrões.
- Quantos dados cabem? Até cerca de 7089 dígitos na maior versão e na correção de erros mais baixa — muito mais do que é prático imprimir.
- A margem branca é opcional? Não. É pela zona de silêncio que o leitor encontra os limites do código.
- Um código dinâmico guarda a minha ligação? Não. Guarda uma ligação curta que reencaminha, e é por isso que o destino muda sem reimprimir.
A equipa Enqre·Publicado a 22/09/2026