Como Gerar um QR Code (Grátis)
QR codes codificam texto em um padrão 2D que câmeras de celular leem sem nenhum aplicativo. A maioria das pessoas os usa para URLs, mas funcionam para credenciais WiFi, cartões de contato, endereços de e-mail, números de telefone e texto simples.
No navegador
Cole um texto ou URL no gerador de QR code e baixe o resultado. A ferramenta roda inteiramente no navegador — nada é enviado a um servidor.
Para impressão: baixe em 1000×1000 px ou maior. Para uso digital (site, apresentação): 300×300 px é suficiente.
O que você pode codificar
| Tipo de conteúdo | Formato para inserir |
|---|---|
| URL | https://example.com |
| Texto simples | Qualquer string de texto |
mailto:usuario@exemplo.com |
|
| Número de telefone | tel:+5511999999999 |
| SMS | SMSTO:+5511999999999:Sua mensagem |
| WiFi | WIFI:T:WPA;S:NomeDaRede;P:senha;; |
| Localização | geo:-23.5505,-46.6333 |
| vCard (contato) | BEGIN:VCARD...END:VCARD |
QR codes de WiFi são os mais práticos — os convidados se conectam sem precisar ler a senha em voz alta.
Python: qrcode
pip install qrcode[pil]
import qrcode
# URL básica
qr = qrcode.make("https://example.com")
qr.save("qr.png")
Com correção de erro e tamanho personalizados:
import qrcode
from qrcode.constants import ERROR_CORRECT_H
qr = qrcode.QRCode(
version=None, # tamanho automático
error_correction=ERROR_CORRECT_H, # recuperação de 30% de dano
box_size=10, # pixels por módulo
border=4, # largura da zona silenciosa (módulos)
)
qr.add_data("https://example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save("qr.png")
Os níveis de correção de erro controlam quanto do código pode ser danificado e ainda ser lido:
| Nível | Dano máximo | Quando usar |
|---|---|---|
| L | 7% | Telas digitais limpas |
| M | 15% | Uso geral |
| Q | 25% | Superfícies levemente desgastadas |
| H | 30% | Impressão em objetos físicos |
JavaScript: qrcode
npm install qrcode
const QRCode = require('qrcode');
// Salvar como arquivo PNG
QRCode.toFile('qr.png', 'https://example.com', { width: 300 }, err => {
if (err) throw err;
});
// Obter como data URL (para embutir em HTML/e-mail)
const url = await QRCode.toDataURL('https://example.com', { width: 300 });
// url = "data:image/png;base64,..."
// Obter como string SVG (melhor para impressão)
const svg = await QRCode.toString('https://example.com', { type: 'svg' });
require('fs').writeFileSync('qr.svg', svg);
Use SVG para materiais impressos — escala para qualquer tamanho sem pixelação.
Formato WiFi QR
O formato completo:
WIFI:T:WPA;S:MinhaRede;P:MinhaSenha123;;
Campos:
T: Tipo de segurança (WPA,WEPou vazio para redes abertas)S: SSID (nome da rede, sensível a maiúsculas)P: SenhaH:trueopcional — adicione se a rede estiver oculta
As câmeras de Android e iOS leem isso nativamente. Nenhum aplicativo necessário.
Tamanho do QR code e distância de leitura
Um código muito pequeno não lê com confiança em má iluminação ou em ângulo.
| Tamanho impresso | Distância confiável de leitura |
|---|---|
| 2 × 2 cm | Até 20 cm |
| 4 × 4 cm | Até 40 cm |
| 8 × 8 cm | Até 80 cm |
| 20 × 20 cm | Até 2 m |
A regra geral: a distância de leitura é cerca de 10× o tamanho impresso. Um QR code em um pôster precisa ser muito maior que um em um cartão de visita.
Pontos principais
- URLs, credenciais WiFi, cartões de contato e texto simples se codificam em QR codes padrão.
- Use saída SVG para materiais impressos — escala sem pixelação.
- Correção de erro H (30% de recuperação) para impressão física; L para uso só digital.
- Formato WiFi:
WIFI:T:WPA;S:NomeDaRede;P:senha;; - A distância de leitura é aproximadamente 10× o tamanho do código impresso.