O teu código QR vai mesmo ser lido?
Arrasta para aqui um código QR — feito onde quer que seja, não só aqui — e isto mede as quatro coisas que decidem se sobrevive à impressão: contraste, zona livre, tamanho do módulo e se ainda descodifica depois de reduzido e suavizado como o vê a câmara de um telemóvel.
Porque é que os códigos falham depois de impressos
Quase todos os códigos QR que falham no mundo funcionavam na perfeição no ecrã em que foram desenhados. Um monitor é o caso mais fácil que existe: retroiluminado, com luz uniforme, sem ruído, segurado direito e a uma distância confortável. O papel não é nada disso.
Por isso a pergunta útil não é se um código se lê no teu portátil. É se continua a ler-se depois de pequeno, ligeiramente desfocado, de esguelha, sob a luz de um café, num telemóvel dois anos mais velho do que o teu. É isso que o teste reduzido e suavizado aproxima aqui.
O que é medido
O contraste, no ponto mais fraco
Um leitor não vê as tuas cores. Divide a imagem em duas populações — escura e clara — e lê o padrão que resta. Tudo depende de essas duas populações serem separáveis. Damos a proporção no ponto mais fraco do código em vez da média, porque um gradiente não tem uma única cor escura e a média esconde a extremidade que falha.
Abaixo de 3:1 é muito provável que falhe impresso. Entre 3:1 e 4:1 funciona no ecrã e fica apertado no papel. Acima disso tens folga.
A zona livre
A margem limpa à volta do código, medida em módulos. A especificação pede quatro de cada lado; é por ela que os leitores percebem onde o símbolo começa. Os códigos que ficam aquém leem-se muitas vezes bem numa página branca, porque é a própria página a fornecer a margem em falta — e falham assim que o código cai sobre um painel colorido ou vai até à margem de um rótulo.
Uma ressalva que esta ferramenta não consegue ultrapassar: se cortaste a imagem justa antes de a carregar, a margem que ela mede é a do teu ficheiro, não a do teu cartaz.
O tamanho mínimo de impressão
Deduzido do número de módulos, a meio milímetro por módulo. Um código mais denso — um URL longo, um vCard, uma palavra-passe de Wi-Fi com uma frase longa — tem mais módulos no mesmo quadrado, por isso cada um é mais pequeno e o conjunto tem de ser impresso mais largo. É o número que mais surpreende.
O teste de leitura
O código é lido duas vezes: uma tal como o carregaste, e outra cortado ao símbolo, reduzido a mais ou menos o que um telemóvel capta de uma impressão pequena, e ligeiramente desfocado para a lente. Um código que passa o primeiro e falha o segundo é o clássico código só para ecrã — e é a razão mais comum para uma tiragem ter de ser reimpressa.
O que isto não te pode dizer
Mede um ficheiro. A tinta alastra em papel não revestido e fecha os espaços entre módulos. Uma plastificação brilhante devolve o reflexo diretamente à câmara. Um código numa garrafa curva não é plano. Alguém vai lê-lo às escuras. Nada disso está na imagem que carregaste, e nenhuma ferramenta que só vê uma imagem pode honestamente afirmar o contrário.
Toma um resultado positivo como indício e não como promessa, e imprime uma cópia de teste em tamanho real no material real antes de encomendar quinhentas. O veredicto sobre o qual esta ferramenta tem mesmo autoridade é o negativo: um código que aqui não descodifica, reduzido e suavizado, não vai funcionar numa parede.
Perguntas que se fazem mesmo
Isto diz-me que o meu código vai mesmo ser lido?
Não, e desconfia de qualquer ferramenta que o garanta. Aqui mede-se o ficheiro de imagem. A impressão acrescenta o alastramento da tinta, a textura do papel, os reflexos e o ângulo de leitura, e nada disso está no ficheiro. Passar aqui é um bom indício, não uma garantia. A metade fiável é a outra: um código que aqui não se lê depois de reduzido e suavizado não sobrevive a uma parede.
A minha imagem é enviada para algum lado?
Não. O ficheiro é lido pelo teu navegador e descodificado num canvas dentro da página. Nunca sai do teu dispositivo — e é também por isso que funciona com o separador offline depois de a página carregar.
O que é a zona livre e porque é que importa?
A margem limpa à volta de um código. A especificação pede quatro módulos de cada lado, e os leitores usam-na para perceber onde o código começa. Códigos com margem a menos leem-se muitas vezes na perfeição sobre papel branco — é a página que fornece o que falta — e falham assim que o código é colocado sobre um fundo colorido ou encostado à margem de um rótulo.
Porque diz que o contraste é baixo se o código parece preto?
O contraste é medido no ponto mais fraco do código, não em média. Um gradiente não tem uma única cor escura, e fazer a média esconde precisamente a extremidade que falha. Se um canto do teu código desvanece na direção do fundo, é com esse canto que um leitor tem de se haver.
O meu código chumbou no teste em tamanho reduzido. O que mudo?
Imprime-o maior, ou simplifica-o. Formas de módulo muito redondas, estilos de canto finos e um logótipo grande gastam todos do mesmo orçamento: deformam ou removem módulos que a correção de erros tem depois de reconstruir. Retirar o logótipo ou voltar a uma forma de módulo mais quadrada costuma bastar, sem mudar o tamanho.
Não consegue ler de todo a minha fotografia de um código.
Corta mais perto. Um código que ocupa uma pequena parte de uma fotografia grande tem poucos píxeis por módulo, e não sobra nada para descodificar. Corta no código mais uma margem à volta e tenta de novo — é também um teste mais justo, já que a câmara de um telemóvel foca o código e não o cartaz inteiro.
Precisas de um código que passe?
O gerador FigQR descodifica cada código no teu navegador enquanto o desenhas, por isso a mesma verificação acontece antes de descarregares em vez de depois de imprimires. Grátis, sem conta, e o código nunca expira.