How to generate QR Code in Python using PyQRCode
In this article, you will learn how to generate a QR code in Python. Python has different libraries to generate QR code, like- qrcode, PyQRCode, PyQRCodeNG, qrcodegen, Sengo. Each library has its own advantages.
In this article, we have used the PyQRCode library to generate QRCode and also mentioned some advanced features of this library along with its basic features.
PyQRCode Library
The PyQRCode library is very simple and easy to implement. This can be encoded with any kind of data like- binary, alphanumeric, or kanji symbols and can be saved as SVG, PNG, or plain text. This module supports Python 2.6, Python 2.7, or Python 3.
Installation of PyQRCode Module
Here, we have installed pyqrcode with pip using the following command-
(env) c:\python37\Scripts\projects>pip install pyqrcode
On successful installation, it returns something like this-
Successfully built pyqrcode
Installing collected packages: pyqrcode
Successfully installed pyqrcode-1.2.1
Generate QRCode of simple string
We have written simple python code to generate the QRCode of a string url. First, we imported the pyqrcode module and used the create() method to generate the code.
Syntax of QRCode create() method-pyqrcode.create(content, error='H', version=None, mode=None, encoding=None)
Here, only the content is required, all the other properties of the code are optional. In the given example, we have passed the string as an argument to this method and used the svg() method to store it in svg file format.
# Import QRCode from pyqrcode
import pyqrcode
from pyqrcode import QRCode
# URL string
site = "www.etutorialspoint.com"
# Generate QR code
getqrcode = pyqrcode.create(site)
# save in svg file format
getqrcode.svg("qrcode.svg", scale = 10)
When you execute the above file, it will generate and save the file in your project directory. The generated file looks something like this-
Optional Advanced Features for PyQRCode
The above example was very simple and used for the basic requirement. In this section, we have mentioned some advanced optional features of the PyQRCode module.
PyQRCode Create() method
The create() method has some optional attributes in addition to the mandatory content attribute. These attributes need to be needed when we want more control over the generating QRCode.
.create(content, error='h', version=None, encoding=None)
error- The error sets the error level correction. The error level is represented as L, M, Q, H and can correct up to 7, 15, 25, and 30 percent of the data respectively. By default, it is set to 'H', the highest possible error correction.
version- It specifies the data size and the capacity of the code. It is an integer value between 1 and 40, where 1 is the smallest and 40 is the highest QR Code value.
encoding- It sets the content encoding type. By default, the object uses more efficient encoding of the contents.
# Import QRCode from pyqrcode
import pyqrcode
from pyqrcode import QRCode
# URL string
site = "www.etutorialspoint.com"
# Generate QR code
getqrcode = pyqrcode.create(site,
error='H',
version=20,
mode='binary')
# save in svg file format
getqrcode.svg("qr.svg", scale = 4)
Create QRCode image in png format
Python provides a pypng library to read and write on png file images. If we want to save the generated qrcode in a png file, we will have to install this library, otherwise it returns an error something like - 'no module named png'.
Run the following command to install 'pypng' with pip-
(env) c:\python37\Scripts\projects>pip install pypng
Here is the code to generate qrcode and save it in a PNG file. We have changed the ratio of the size and background color using scale and background attributes.
# Import QRCode from pyqrcode
import pyqrcode
from pyqrcode import QRCode
# URL string
site = "www.etutorialspoint.com"
# Generate QR code
getqrcode = pyqrcode.create(site,
error='H',
version=20,
mode='binary')
# save in png file format
getqrcode.png('siteQR.png', scale=2,
background=[0x00, 0xff, 0xbf])
The above code generated the qrcode like this-
Related Articles
Python convert list to numpy arrayPython Numpy Array Shape
Python NumPy: Overview and Examples
Convert Python list to numpy array
numpy dot product
Trigonometric functions Python Numpy
How to read xml file in Python
Python Spell Checker Program
Python remove punctuation from string
How to convert Excel to CSV Python Pandas
How to read data from excel file using Python Pandas
How to read data from excel file in Python
Python read JSON from URL requests
CRUD operations in Python using MYSQL Connector
Fibonacci Series Program in Python
Python File Handler - Create, Read, Write, Access, Lock File
Python convert xml to dict
Python convert dict to xml
How to generate QR Code in Python using PyQRCode
Python programs to check Palindrome strings and numbers