Criando QR Code - 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()
segno.make_qr()
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()
micro=False
Salvando o QR Code em Arquivos
O QR Code gerado pode ser salvo em diferentes formatos, como .svg
.png
.eps
.pdf
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()
: fator de escala da imagem.scale
: tamanho da borda ao redor do código.border
: 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).dark
: cor das áreas claras do QR Code.light
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()
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()
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()
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)