Skip to content
tools.best

Browse all tools

QR Code Generator

Type a link or text and the QR code updates as you type. Download it as PNG or SVG. The code holds your content itself, so it never expires.

Generated in your browser. Your text is not sent to a server. Sources: DENSO WAVE, ISO/IEC 18004 Updated

Version 2 (25 × 25 modules), level M, 19 of 26 bytes used.

How the QR code generator stores your text

  1. The text is turned into UTF-8 bytes. A header says "byte mode" and how many bytes follow.
  2. Error correction bytes are calculated from the data with a Reed–Solomon code and appended. They let a scanner rebuild parts of the code it cannot read.
  3. The smallest grid that holds everything is chosen. Grids are called versions: version 1 is 21 × 21 modules, and each version adds 4 modules per side up to version 40 with 177 × 177.
  4. The three corner squares, the timing lines and the alignment marks are drawn, and the bits are laid out in a zigzag from the bottom right corner.
  5. One of eight mask patterns is applied to break up large blank or dark areas, and the mask and error correction level are written next to the corner squares.

The bytes that count are UTF-8 bytes, not characters. The letter counter shows the byte count of any text, and text to binary shows the bits each byte puts into the code. A link with spaces or accented letters must be percent-encoded first; the URL encoder does that, and every escape costs three bytes.

The QR code for https://tools.best/ from the QR code generator: version 2, 25 × 25 modules at level M with 19 of 26 bytes used, with the three finder patterns, the timing patterns, the alignment pattern and the 4-module quiet zone marked.
Everything except the black data modules sits in the same place in every version 2 code.

QR code size example: one link at four levels

The link https://tools.best/ is 19 characters, all basic Latin, so 19 bytes.

  • At level L, version 1 holds 17 bytes, which is too few. The tool uses version 2 (25 × 25), which holds 32.
  • At level M, version 1 holds 14 bytes, which is too few. The tool uses version 2 (25 × 25), which holds 26.
  • At level Q, version 1 holds 11 bytes, which is too few. The tool uses version 2 (25 × 25), which holds 20.
  • At level H, version 1 holds 7 bytes, which is too few. The tool uses version 3 (29 × 29), which holds 24.

A shorter link keeps the grid smaller, and a smaller grid can be printed smaller and still scan.

Each version adds 4 modules on every side, so version 2 is 25 × 25 and version 10 is 57 × 57. At the same printed width, more modules means smaller modules, and smaller modules are harder for a camera to tell apart.

QR code capacity by version and level

VersionModulesLevel LLevel MLevel QLevel H
121 × 211714117
225 × 2532262014
329 × 2953423224
433 × 3378624634
537 × 37106846044
641 × 411341067458
849 × 4919215210884
1057 × 57271213151119
1577 × 77520412292220
2097 × 97858666482382
30137 × 13717321370982742
40177 × 1772953233116631273

Bytes in byte mode, the mode this tool uses for all content. A letter outside basic Latin takes two or more bytes.

QR code error correction levels L, M, Q and H

LevelShare of the code that can be restoredUse it for
Labout 7%Long content on a clean screen
Mabout 15%Most uses
Qabout 25%Print that may get worn
Habout 30%Harsh conditions

How to print a QR code that scans

  • Keep the white margin. The standard asks for a quiet zone four modules wide on every side. The downloads include it.
  • Dark on light. The downloads are black on white. If you recolor the code, keep the modules much darker than the background.
  • Text encoding. Non-English text is stored as UTF-8. Current phone cameras read it correctly; some older scanner apps may show accented letters wrongly.
  • Test before printing. Scan the final artwork at its real size.

A static code holds its content and nothing else. There is no redirect in between, so nobody can count your scans, and the code keeps working for as long as the link inside it does.

This address used to be called "dynamic QR code generator". The tool has always made static codes, and the page now says so. QR Code is a registered trademark of DENSO WAVE INCORPORATED.

QR Code Generator: FAQ

Do these QR codes expire?
No. The code is static: your link or text is stored in the pattern itself. It works for as long as the content it points to exists, with no account and no scan limit.
What is the difference between a static and a dynamic QR code?
A static code contains the final content. A dynamic code contains a short link to a service, which forwards the scanner to your destination; you can change the destination later and count scans, but the code stops working if the service does. This tool makes static codes only.
Can I change the link after printing the code?
Not in the code. If you may need to change the destination, encode a URL on your own website and redirect that URL when needed.
Which error correction level should I choose?
M is a good default. Choose Q or H for codes that may get dirty, scratched or partly covered, for example on packaging or outdoors: a higher level lets a scanner recover more damage, but the code needs more modules and each one gets smaller. Choose L when the content is long and the code will be shown on a clean screen.
PNG or SVG?
Use SVG for print: it is a vector image and stays sharp at any size. Use PNG for chat, email, documents and anywhere an SVG is not accepted.
How much text fits in a QR code?
Up to 2,953 bytes at level L in this tool. That is far more than is practical: the longer the content, the denser the code and the harder it is to scan. Keep URLs short.
Why does my code not scan?
The usual causes are printing it too small, too little white margin around it, low contrast, or inverted colors. Keep the white border, print dark on light, and test with two different phones before printing in quantity.

Sources