Skip to main content

Introduction

This project aims to be the best, clearest QR Code generator library. The primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.

Home page with live JavaScript demo, extensive descriptions, and competitor comparisons: https://www.nayuki.io/page/qr-code-generator-library

Features

Core features:

  • Significantly shorter code but more documentation comments compared to competing libraries

  • Supports encoding all 40 versions (sizes) and all 4 error correction levels, as per the QR Code Model 2 standard

  • Output format: Raw modules/pixels of the QR symbol

  • Detects finder-like penalty patterns more accurately than other implementations

  • Encodes numeric and special-alphanumeric text in less space than general text

  • Open-source code under the permissive MIT License

Manual parameters:

  • User can specify minimum and maximum version numbers allowed, then library will automatically choose smallest version in the range that fits the data

  • User can specify mask pattern manually, otherwise library will automatically evaluate all 8 masks and select the optimal one

  • User can specify absolute error correction level, or allow the library to boost it if it doesn’t increase the version number

  • User can create a list of data segments manually and add ECI segments

More information about QR Code technology and this library’s design can be found on the project home page.

Examples

from qrcodegen import *

# Simple operation
qr0 = QrCode.encode_text("Hello, world!", QrCode.Ecc.MEDIUM)
svg = to_svg_str(qr0, 4)  # See qrcodegen-demo

# Manual operation
segs = QrSegment.make_segments("3141592653589793238462643383")
qr1 = QrCode.encode_segments(segs, QrCode.Ecc.HIGH, 5, 5, 2, False)
for y in range(qr1.get_size()):
    for x in range(qr1.get_size()):
        (... paint qr1.get_module(x, y) ...)

More complete set of examples: https://github.com/nayuki/QR-Code-generator/blob/master/python/qrcodegen-demo.py .

Release files for qrcodegen 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qrcodegen 1.8.0
File Size Uploaded
qrcodegen-1.8.0.zip 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qrcodegen 1.8.0
File Interpreter ABI Platform
qrcodegen-1.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.9 kB

Release files / qrcodegen-1.8.0.zip

Download URL qrcodegen-1.8.0.zip
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
82db61f5065b6ba6d7606115b9413abdafdf3fe9c2810047100d08eced186e9e
BLAKE2b-256 checksum
How to use checksums
86f8d961d4e7035f8f67ca623e3e53ca7c610951b01b76667dee43f55d2e32f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.6

Release files / qrcodegen-1.8.0-py3-none-any.whl

Download URL qrcodegen-1.8.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06bf87021bc351f1c6e722ac67db8a059c4fe27bbfbca39ed7a9a2364abdd7a6
BLAKE2b-256 checksum
How to use checksums
102bfb03f5a840469f627d71690a95e8a53e3ea53ef6d752c93f34a5a65ee061
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.8.0 This release

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page