Criando QR Code em Python
O QR Code (Quick Response Code) é uma forma amplamente utilizada de codificação de informações, representado como uma matriz de pixels em um padrão quadrado. Em Python, é possível criar QR Codes utilizando diversas bibliotecas, muitas delas com funcionalidades similares. Entre essas, destaca-se a biblioteca Segno, conhecida por sua simplicidade e eficiência.
Para instalar a biblioteca Segno, pode-se utilizar o gerenciador de pacotes pip
:
pip install segno
A criação de QR Codes é realizada por meio das funções segno.make()
e segno.make_qr()
. Ambas recebem como argumento principal o conteúdo a ser codificado e retornam o QR Code gerado:
import segno
qrcode = segno.make_qr("Hello www.programicio.com!")
qrcode2 = segno.make("Hello www.programicio.com!", micro=False)
Por padrão, a função segno.make()
gera um micro QR Code, uma versão otimizada para pequenos volumes de dados. Para criar um QR Code convencional, é necessário definir explicitamente o parâmetro micro=False
.
Salvando o QR Code em Arquivos
O QR Code gerado pode ser salvo em diferentes formatos, como .svg
, .png
, .eps
e .pdf
, utilizando o método save()
:
import segno
# Criando o código
qrcode = segno.make_qr("Hello www.programicio.com!")
# Salvando o código em um arquivo PNG
qrcode.save("programicio_qr.png")
# Salvando o código em outros formatos
qrcode.save("programicio_qr.pdf")
qrcode.save("programicio_qr.eps")
qrcode.save("programicio_qr.svg")
Para exibir o QR Code diretamente no visualizador de imagens padrão do sistema, pode-se usar o método show()
:
import segno
qrcode = segno.make_qr("Hello www.programicio.com!")
qrcode.show()
Personalizando o QR Code
O método save()
aceita vários parâmetros que permitem personalizar o QR Code gerado, incluindo:
scale
: fator de escala da imagem.border
: tamanho da borda ao redor do código.dark
: cor das áreas escuras do QR Code, que pode ser definida como uma tupla RGB, um nome de cor (como "red") ou um valor hexadecimal (por exemplo, #RRGGBB).light
: cor das áreas claras do QR Code.
Exemplo de personalização:
import segno
qrcode = segno.make_qr("Hello www.programicio.com!")
# Configurando cor, borda e escala
qrcode.save("custom_qr.png", dark="#2980B9", border=4, scale=5)
Neste caso, o QR Code será gerado com uma borda de 4 unidades, ampliado em 5 vezes e com a cor escura configurada como azul (#2980B9
).
Funções Auxiliares
A biblioteca Segno também oferece funções auxiliares para criar QR Codes adaptados a diferentes tipos de dados, como emails, coordenadas geográficas, redes Wi-Fi e informações de contato. Essas funções simplificam a codificação de dados estruturados, reduzindo a necessidade de manipulação manual.
Codificação de Email
A função segno.helpers.make_email()
gera QR Codes contendo informações de email. É possível definir o destinatário, assunto, corpo do email e listas de cópia (CC e BCC):
from segno import helpers
qrcode = helpers.make_email(
"tom@gmail.com",
subject="Assunto do Email",
body="Conteúdo do Email"
)
qrcode.save("email_qr.png", scale=5)
Codificação de Coordenadas Geográficas
A função segno.helpers.make_geo()
permite codificar coordenadas geográficas (latitude e longitude) em QR Codes:
from segno import helpers
qrcode = helpers.make_geo(lat=40.7128, lng=-74.0060)
qrcode.save("geo_qr.png", scale=5)
Codificação de Redes Wi-Fi
Com a função segno.helpers.make_wifi()
, é possível criar QR Codes contendo informações de configuração de redes Wi-Fi, como SSID, senha e tipo de autenticação:
from segno import helpers
qrcode = helpers.make_wifi(
ssid="MyWifi",
password="1234567890",
security="WPA"
)
qrcode.save("wifi_access.png", scale=10)
Codificação de Contatos
A biblioteca Segno suporta a criação de QR Codes para informações de contato em formatos como MeCard e vCard. Por exemplo, para gerar um QR Code no formato vCard:
from segno import helpers
qrcode = helpers.make_vcard(
name="John Doe",
displayname="John",
email="john.doe@example.com",
phone="+123456789"
)
qrcode.save("vcard_qr.png", scale=5)
Documentação oficial: