DEV Community

Cover image for Create Stunning QR Codes in Seconds with Python – Here’s How!
Chemical Engineer
Chemical Engineer

Posted on

Create Stunning QR Codes in Seconds with Python – Here’s How!

QR codes have become an essential tool in today’s digital world, bridging the gap between physical and digital spaces. Whether you’re sharing a website link, contact information, or even Wi-Fi credentials, QR codes make it effortless. In this article, we’ll dive into a Python-based QR code generator, explain the code step-by-step, and show you how to create your own custom QR codes. Let’s get started!

Python Code for QR Generator

Why Use Python to Generate QR Codes?

Python is a versatile programming language that makes it easy to automate tasks, including generating QR codes. With just a few lines of code, you can create QR codes that are not only functional but also visually appealing. The best part? You can customize the colors and size to match your brand or personal style.


Step-by-Step Guide to Generating QR Codes

Below, we’ll walk you through the Python code for generating QR codes and explain how to use it effectively.

1. Install the Required Libraries

Before you start, you’ll need to install the necessary Python libraries. Open your terminal or Jupyter Notebook and run the following command:

!pip install qrcode[pil]
Enter fullscreen mode Exit fullscreen mode

This command installs the qrcode library, which is used to generate QR codes, and PIL (Pillow), which handles image processing.


2. Import the Required Modules

Once the libraries are installed, import the necessary modules in your Python script or notebook:

import qrcode
from PIL import Image
from IPython.display import display
Enter fullscreen mode Exit fullscreen mode
  • qrcode: The main library for generating QR codes.
  • PIL.Image: Used to handle image creation and manipulation.
  • IPython.display: Helps display the QR code directly in a Jupyter Notebook.

3. Define the QR Code Generation Function

Next, we define a function called generate_qr_code that takes three parameters:

  • link: The URL or text you want to encode in the QR code.
  • fill_color: The color of the QR code (default is black).
  • back_color: The background color of the QR code (default is white).

Here’s the function:

def generate_qr_code(link, fill_color='black', back_color='white'):
    """
    Generates a QR code from the given link and displays it in the notebook.

    :param link: The URL or text to encode in the QR code.
    :param fill_color: The color of the QR code (default is 'black').
    :param back_color: The background color of the QR code (default is 'white').
    """
    # Create a QR code instance
    qr = qrcode.QRCode(
        version=1,  # Controls the size of the QR Code (1 is the smallest, 40 is the largest)
        error_correction=qrcode.constants.ERROR_CORRECT_L,  # Error correction level
        box_size=10,  # Size of each box in the QR code
        border=4,  # Border size around the QR code
    )

    # Add data to the QR code
    qr.add_data(link)
    qr.make(fit=True)

    # Create an image from the QR code instance
    img = qr.make_image(fill_color=fill_color, back_color=back_color)

    # Display the image in the notebook
    display(img)
Enter fullscreen mode Exit fullscreen mode

4. Customize and Generate Your QR Code

To generate a QR code, simply call the generate_qr_code function. Here’s how you can do it:

if __name__ == "__main__":
    # Input the link from the user
    link = input("Enter the link to generate QR code: ")

    # Optional: Customize the fill color and background color
    fill_color = input("Enter the fill color (default is 'black'): ") or 'black'
    back_color = input("Enter the background color (default is 'white'): ") or 'white'

    # Generate and display the QR code
    generate_qr_code(link, fill_color, back_color)
Enter fullscreen mode Exit fullscreen mode

5. Run the Code

  1. Save the script as qr_code_generator.py.
  2. Run the script in your terminal or Jupyter Notebook.
  3. Enter the link you want to encode when prompted.
  4. Optionally, customize the fill color and background color.
  5. Voilà! Your QR code will be generated and displayed.

How Does the Code Work?

Let’s break down the key components of the code:

  • QRCode Instance: The qrcode.QRCode class is used to create a QR code object. You can customize its size, error correction level, and border.

    • version: Controls the size of the QR code (1 is the smallest, 40 is the largest).
    • error_correction: Determines how much of the QR code can be damaged while still being readable. ERROR_CORRECT_L allows for about 7% damage recovery.
    • box_size: Defines the size of each "box" in the QR code.
    • border: Specifies the width of the border around the QR code.
  • Adding Data: The add_data method encodes the provided link or text into the QR code.

  • Creating the Image: The make_image method generates the QR code as an image, with customizable colors.

  • Displaying the Image: The display function shows the QR code directly in your Jupyter Notebook.


Customization Options

One of the best features of this QR code generator is its flexibility. You can:

  • Change the fill color and background color to match your branding.
  • Adjust the box size and border to make the QR code larger or smaller.
  • Use different error correction levels depending on your needs.

Practical Applications

Here are some ways you can use this QR code generator:

  1. Marketing: Share your website, social media profiles, or promotional offers.
  2. Contactless Payments: Generate QR codes for payment links.
  3. Wi-Fi Sharing: Create QR codes that automatically connect users to your Wi-Fi network.
  4. Event Management: Use QR codes for ticketing or check-ins.

Conclusion

Generating QR codes with Python is simple, fast, and highly customizable. With the code provided in this article, you can create QR codes for any purpose, whether personal or professional. So why wait? Start generating your own QR codes today and unlock a world of possibilities!


Pro Tip: Bookmark this article for future reference, and share it with your friends who might find it useful. Happy coding! 🚀


For Non-Tech You Can directly copy and Paste in Google Colab

!pip install qrcode[pil]

import qrcode
from PIL import Image
from IPython.display import display

def generate_qr_code(link, fill_color='black', back_color='white'):
    """
    Generates a QR code from the given link and displays it in the notebook.

    :param link: The URL or text to encode in the QR code.
    :param fill_color: The color of the QR code (default is 'black').
    :param back_color: The background color of the QR code (default is 'white').
    """
    # Create a QR code instance
    qr = qrcode.QRCode(
        version=1,  # Controls the size of the QR Code (1 is the smallest, 40 is the largest)
        error_correction=qrcode.constants.ERROR_CORRECT_L,  # Error correction level
        box_size=10,  # Size of each box in the QR code
        border=4,  # Border size around the QR code
    )

    # Add data to the QR code
    qr.add_data(link)
    qr.make(fit=True)

    # Create an image from the QR code instance
    img = qr.make_image(fill_color=fill_color, back_color=back_color)

    # Display the image in the notebook
    display(img)

if __name__ == "__main__":
    # Input the link from the user
    link = input("Enter the link to generate QR code: ")

    # Optional: Customize the fill color and background color
    fill_color = input("Enter the fill color (default is 'black'): ") or 'black'
    back_color = input("Enter the background color (default is 'white'): ") or 'white'

    # Generate and display the QR code
    generate_qr_code(link, fill_color, back_color)

Enter fullscreen mode Exit fullscreen mode

Author Credits:

ChemEnggCalc - Learn Chemical Engineers Calculations with Tools & Tech

Learn Chemical Engineers Calculations with Tools & Tech

favicon chemenggcalc.com

Top comments (0)