Open In App

How to generate QR Codes with a custom logo using Python ?

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will discuss how to generate a QR code with an image at its center. We are going to generate a QR code of any text, link, etc., and put an image in the center of that QR code such that it represents a branded QR code

Modules Required:

  • Pillow: It is a lightweight image processing tool that aid in editing, creating, and saving images. Pillow supports many image file formats including BMP, PNG, JPEG, and TIFF. It can be installed using the below command:
pip install Pillow
  • QRcode: It is an external python library used to generate QR codes. It can be installed using the below command:
pip install qrcode

Image used:

Python3




# import modules
import qrcode
from PIL import Image
 
# taking image which user wants
# in the QR code center
Logo_link = 'g4g.jpg'
 
logo = Image.open(Logo_link)
 
# taking base width
basewidth = 100
 
# adjust image size
wpercent = (basewidth/float(logo.size[0]))
hsize = int((float(logo.size[1])*float(wpercent)))
logo = logo.resize((basewidth, hsize), Image.ANTIALIAS)
QRcode = qrcode.QRCode(
    error_correction=qrcode.constants.ERROR_CORRECT_H
)
 
# taking url or text
 
# adding URL or text to QRcode
QRcode.add_data(url)
 
# generating QR code
QRcode.make()
 
# taking color name from user
QRcolor = 'Green'
 
# adding color to QR code
QRimg = QRcode.make_image(
    fill_color=QRcolor, back_color="white").convert('RGB')
 
# set size of QR code
pos = ((QRimg.size[0] - logo.size[0]) // 2,
       (QRimg.size[1] - logo.size[1]) // 2)
QRimg.paste(logo, pos)
 
# save the QR code generated
QRimg.save('gfg_QR.png')
 
print('QR code generated!')


Output:

QR code generated!

QR code:

Explanation:

  • When you run the program then it will take the input image and the base width. After that, the image will be reshaped and a QRcode object will be created.
  • Using the QRcode object various attributes will be assigned such as data or URL will be linked to the QR code using add_data() method, color of the QR code will be assigned using the make_image() method and the reshaped image will be placed in the QR code using the paste() method.
  • Finally, the generated QR code will be saved in a given location using the save() method.


Last Updated : 23 Jan, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads