Como criar e decodificar um código QR usando Python

Como criar e decodificar um código QR usando Python

Um código QR (código de resposta rápida) é um tipo de código de barras de matriz que armazena dados codificados. Ele foi chamado de código de resposta rápida devido à sua capacidade de armazenar e acessar grandes dados em nenhum momento. Você pode encontrar esses códigos QR em todos os lugares: pôsteres, revistas, salas de cinema, sites, academias, anúncios, etc.





Usando Python, você pode gerar seu próprio código QR, personalizá-lo e decodificar informações de um código QR.





Configurar um ambiente Python

É recomendado configurar um ambiente isolado para projetos Python. Fazendo isso, você pode entender mais sobre as dependências do projeto.





Criando um Ambiente Virtual

Você pode criar um ambiente virtual em Python de várias maneiras: distribuição virtualenv, virtualenvwrapper ou Anaconda. Aqui vamos usar virtualenv para criar um ambiente virtual.

  1. Crie uma pasta usando o mkdir [pasta] comando, onde você deseja criar este projeto.
  2. Modelo cd [pasta] no prompt de comando para mover para o novo diretório.
  3. Modelo virtualenv [nome do ambiente] para criar um ambiente virtual.
  4. Ative o ambiente virtual digitando [Nome do ambiente] Scripts ativar

Instale os pacotes necessários

Instale os pacotes Python necessários usando o comando pip. Assegure-se de ter pip instalado em seu sistema .



Execute o seguinte comando em seu prompt de comando.

pip3 install opencv-python qrcode numpy Image

Se não quiser instalar todos os pacotes de uma vez, você pode instalá-los um por um como:





pip3 install opencv-python

Isso instala o pacote opencv-python, que é usado principalmente para visão computacional, aprendizado de máquina e processamento de imagens.

pip3 install qrcode

Isso instala o pacote python qrcode que é usado para gerar e ler códigos QR.





pip3 install numpy

Isso instala o pacote Python numpy que é usado para trabalhar com matrizes.

pip3 install Image

Isso instala o pacote Image python, que fornece várias funções para carregar imagens de arquivos e criar novas imagens.

Gerar código QR

Para gerar o código, crie um novo arquivo com um .py extensão que terá o código para gerar o código QR.

Cole o código a seguir em seu arquivo Python e execute o programa.

você precisa do ps plus para jogar fortnite
import qrcode
# Data for which you want to make QR code
# Here we are using the URL of the MakeUseOf website
data = 'https://www.makeuseof.com/'
# File name of the QR code Image
# Change it with your desired file name
QRCodefile = 'MUOQRCode.png'
# Generating the QR code
QRimage = qrcode.make(data)
# Saving image into a file
QRimage.save(QRCodefile)

Isso criará uma imagem de código QR (MUOQRCode.png) para os dados fornecidos (neste caso, www.makeuseof.com ) O código QR gerado será semelhante a este:

Gere um código QR personalizado

Você pode personalizar o código QR com os recursos incríveis da biblioteca qrcode. Você pode alterar a cor de preenchimento, cor de fundo, tamanho da imagem, tamanho da caixa e espessura da borda do código QR.

Alterando a imagem e o tamanho da caixa

Você pode alterar o tamanho da imagem do código QR usando o versão parâmetro na classe QRCode. Ele aceita um número inteiro entre 1 e 40, onde 1 é equivalente à matriz 21x21 e 40 é equivalente à matriz 185x185. Observe que os dados não cabem no tamanho especificado, a versão aumentará automaticamente.

Da mesma forma, você pode alterar o tamanho da caixa usando o box_size parâmetro na classe QRCode. Ele especifica os pixels de cada caixa no código QR.

# Importing libraries
import qrcode
import numpy as np
# Data which for you want to make QR code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR code Image file
QRCodefile = 'CustomisedImgBoxQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(version=1, box_size=12)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)
# print the image size (version)
print('Size of the QR image(Version):')
print(np.array(qrObject.get_matrix()).shape)

O seguinte arquivo de imagem de código QR será gerado:

Além disso, a seguinte saída será exibida-

Size of the QR image(Version):
(33, 33)

Observe que a versão é dimensionada automaticamente de acordo com o tamanho dos dados.

Mudando a Cor de Preenchimento

Você pode alterar a cor de preenchimento do código QR usando o fill_color parâmetro.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedFillColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(fill_color='red')
# Saving image into a file
image.save(QRCodefile)

O seguinte arquivo de imagem de código QR será gerado:

Mudando a cor de fundo

Você pode alterar a cor de fundo do código QR usando o cor de fundo parâmetro.

# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBGColorQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(back_color='blue')
# Saving image into a file
image.save(QRCodefile)

O seguinte arquivo de imagem de código QR será gerado:

Alteração da espessura da borda

Você pode alterar a espessura da borda do código QR usando o fronteira parâmetro na classe QRCode.

# Importing libraries
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = 'https://www.makeuseof.com/'
# Name of the QR Code Image file
QRCodefile = 'CustomisedBorderQRCode.png'
# instantiate QRCode object
qrObject = qrcode.QRCode(border=10)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)

O seguinte arquivo de imagem de código QR será gerado:

Decodifique o código QR usando a imagem do código QR

Você pode decodificar informações da imagem do código QR usando a biblioteca OpenCV do Python. OpenCV tem um detector de código QR embutido. Usando o detector, você pode decodificar dados do código QR.

# Import Library
import cv2
# Name of the QR Code Image file
filename = 'MUOQRCode.png'
# read the QRCODE image
image = cv2.imread(filename)
# initialize the cv2 QRCode detector
detector = cv2.QRCodeDetector()
# detect and decode
data, vertices_array, binary_qrcode = detector.detectAndDecode(image)
# if there is a QR code
# print the data
if vertices_array is not None:
print('QRCode data:')
print(data)
else:
print('There was some error')

Se a imagem fornecida for um código QR válido, os dados decodificados serão exibidos. Neste caso, a seguinte saída será gerada-

QRCode data:
https://www.makeuseof.com/

Decodifique o código QR ao vivo usando uma webcam

Na maioria das vezes, as pessoas tendem a usar uma webcam para escanear códigos QR. Usando o potencial da biblioteca Python e OpenCV, você pode facilmente decodificar dados de um código QR.

import cv2
# initalize the camera
cap = cv2.VideoCapture(0)
# initialize the OpenCV QRCode detector
detector = cv2.QRCodeDetector()
while True:
_, img = cap.read()
# detect and decode
data, vertices_array, _ = detector.detectAndDecode(img)
# check if there is a QRCode in the image
if vertices_array is not None:
if data:
print('QR Code detected, data:', data)
# display the result
cv2.imshow('img', img)
# Enter q to Quit
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

Ao executar este código, sua webcam será aberta automaticamente. Basta segurar o código QR na frente da webcam e os dados serão decodificados e exibidos no prompt de comando.

Codificação e decodificação de código QR facilitada

Usando este artigo, você pode codificar, decodificar e personalizar facilmente os códigos QR conforme desejar. Você pode até criar um aplicativo gerador de scanner de código QR completo usando o código fornecido.

Existem várias maneiras criativas de usar os códigos QR. Seja criativo e use os códigos QR como desejar.

Compartilhado Compartilhado Tweet O email Como ler um código QR no Android e iPhone

Há um leitor de código QR pré-instalado no Android e no iPhone. Veja como usá-lo.

Leia a seguir
Tópicos relacionados
  • Programação
  • Código QR
  • Pitão
Sobre o autor Yuvraj Chandra(60 artigos publicados)

Yuvraj é estudante de graduação em Ciência da Computação na Universidade de Delhi, na Índia. Ele é apaixonado por Full Stack Web Development. Quando não está escrevendo, ele está explorando a profundidade de diferentes tecnologias.

como remover um fone de ouvido quebrado
Mais de Yuvraj Chandra

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever