QR Code Generator: History, How They Work, and Python Examples
ChatGPT & Benji AsperheimThu Jul 17th, 2025

QR Code Generator Overview

QR codes are everywhere—on restaurant menus, business cards, package tracking, Wi-Fi setup, and more. But what is a QR code, and how can you create your own scannable QR code free, even with Python?

This article breaks down QR codes for beginners: the history behind QR codes, how they work, why the world needs them more than barcodes, and how you can use a free QR code generator, or write a little Python to generate the QR code yourself.


The Surprising History of QR Codes

The story of the QR code starts in Japan in 1994. Masahiro Hara, an engineer at Denso Wave (a Toyota subsidiary), was asked to improve how auto parts were tracked on the assembly line. Traditional barcodes were slow, limited to about 20 characters, and could only be scanned from one angle.

Hara and his team developed a new kind of code: QR stands for Quick Response. Unlike barcodes, a QR code can hold up to several thousand characters, including links, numbers, and even entire vCards. They’re fast to scan from any direction. The original goal? Scan parts faster, store more info, and reduce errors.

Denso Wave made the QR code technology public domain, which is why you see so many free QR code generators today—anyone can create or scan them without paying a licensing fee.


How Does a QR Code Work? (For Non-Nerds) 🤓

A QR code is a two-dimensional matrix made up of black squares and white spaces. It looks like static from an old TV, but it’s actually full of data. Here’s how it works:

Scanning a QR code with your phone or a QR code reader instantly decodes this pattern, showing a link, text, or whatever was encoded.


What Can You Store in a QR Code?

QR codes are extremely flexible. You can encode:


How Are QR Codes Made?

When you use a QR code generator or a free QR code builder, here’s what happens under the hood:

  1. You enter your data (a link, message, or info).
  2. The generator encodes it using a public QR code standard.
  3. Error correction is calculated and embedded.
  4. The final matrix is rendered as a scannable image (usually PNG or SVG).
  5. You can now download or share your QR code—ready to use anywhere.

Online QR code generators and qr barcode makers do all this instantly. But, for nerds and coders, you can also make QR codes in Python with just a few lines.


Comparison of Python QR Code Libraries

If you want to generate QR codes with Python, there are several excellent libraries available. Here’s a quick comparison of the three most popular options: qrcode, qrcodegen, and Segno.

FeatureqrcodeqrcodegenSegno
Library LicenseBSDMITBSD
Library Version8.0.01.8.01.6.6
Mode NumericYesYesYes
Mode AlphanumericYesYesYes
Mode ByteYesYesYes

The above table lists some of the more popular QR code generator’s in Python.

Descriptions

Summary: All three libraries let you generate QR codes free and easily in Python. If you’re just starting, qrcode is the easiest. For advanced use or vector output, check out Segno.


How to Generate a QR Code Free in Python

Want to create a QR code generator with code? Python makes it dead simple thanks to libraries like qrcode.

Step 1: Install the Python QR Code library

Open your terminal and run:

pip install qrcode

This installs the qrcode package and the Python Imaging Library for image creation.

Step 2: Write Python Code to Generate the QR Code

Here’s a minimal working example that generates a QR code for your website:

import qrcode

# The URL or data to encode
data = "https://learnprogramming.us/"

# Create the QR code
qr = qrcode.QRCode(
    version=1,  # Controls the size of the QR code: 1 is 21x21 (smallest)
    error_correction=qrcode.constants.ERROR_CORRECT_L,  # 7% error correction
    box_size=10,  # Size of each "box" in the image
    border=4,  # Border thickness (default: 4)
)

qr.add_data(data)
qr.make(fit=True)

# Create an image from the QR Code instance
img = qr.make_image(fill_color="black", back_color="white")

# Save it to a file
img.save("learnprogramming-qr.png")

Result: This script generates a QR code image that, when scanned, will open https://learnprogramming.us/. You can open, print, or share the PNG as needed!

Customize a QR Code Image in Python

You can resize the QR code image to 512x512 pixels using the resize method from the Pillow imaging library.

Here’s a Python QR code snippet of how you can do this:

import qrcode
from PIL import Image

def generate_qr_code(data, filename):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)

    img = qr.make_image(fill_color="black", back_color="white")
    img = img.resize((512, 512))  # Resize to 512x512 pixels
    img.save(filename)

data = "https://learnprogramming.us"
filename = "learnprogramming_qr.png"
generate_qr_code(data, filename)

Before running this code, make sure to install the Pillow library using pip:

pip install pillow

This code will generate a QR code image named learnprogramming_qr.png with a size of 512x512 pixels.

NOTE: Resizing the image may affect the QR code’s readability, so make sure to test it after generating.

learnprogramming.us QR Code


Want to Create QR Codes Online—Free and Fast?

There are dozens of free QR code generators and qr barcode builders online, but not all are equal:

Pro tip: If you want to generate a batch of QR codes (say, for event tickets), look for a batch qr code generator or use a simple Python loop with the above code.


FAQ: Common Questions About QR Codes

Q: Are QR codes really free to use? A: Yes! Thanks to Denso Wave making the tech public domain, you can use, make, and scan QR codes for free—no license required.

Q: What’s the best way to generate a QR code? A: For most, use a free qr code generator online. For coders, a Python script or API is perfect.

Q: Are all QR codes safe to scan? A: Be careful—scanning a QR code can open a malicious site. Always check the link or source before scanning unknown codes.


Conclusion

QR codes are one of the most practical (and surprisingly open-source) inventions of the modern era. From their origins as a faster barcode for Japanese factories, QR codes have taken over the world—from restaurants to resumes. Whether you use a free qr code generator, build your own qr builder, or just scan codes with your phone, QR technology is here to stay. Now that you know how to create and use QR codes—especially with simple Python scripts—you’re ready to join the next wave of easy, contactless tech.