Finance 44 tools → Date 19 tools → Health 27 tools → Everyday 23 tools → Math 19 tools → Construction 16 tools → PDF 23 tools → Education 10 tools → Conversion 7 tools → Text 12 tools → Image 8 tools → About → Contact →

QR Code Generator

QR codes are the shortest path from paper to a phone: a menu on a café table, a payment link on an invoice, a web address on a poster that nobody would ever type. Type or paste your text or link here and this page draws a real, standard QR code for it in your browser — then hands it to you as a PNG at the size you choose.

How a QR code stores your text

A QR code is a grid of black and white squares called modules. Three corners carry the big finder patterns that tell a camera where the code is and which way up it sits; timing patterns and a small format marker tell it the grid's size and settings; the rest of the grid encodes your text as binary data, read in a zigzag from the bottom right, together with error-correction data woven through it. Short texts fit in a small grid — a Version 1 code is just 21 × 21 modules — and the grid grows in steps of 4 modules per version as the text gets longer, up to Version 40 at 177 × 177. The version is not a mystery number: it is simply (modules − 17) ÷ 4, and this page shows it with every code. The generator picks the smallest version that fits your text automatically, because smaller grids have bigger, easier-to-scan modules. That is the method, end to end: text → encoded data → module grid → image, all of it standardised, which is why any scanner app on any phone can read the result.

Error correction, level M

Every code made here uses error-correction level M. Roughly 15% of the code's capacity is redundancy, so the message can still be recovered if about 15% of the printed code is scratched, faded, dirty or covered — the maths (Reed–Solomon codes, the same family that kept scratched CDs playing) reconstructs the missing pieces. Higher levels survive more damage but need a denser grid for the same text, which makes modules smaller and scanning from a distance harder; M is the balanced choice used by most menus, posters and packaging. What error correction does not forgive is low contrast or a missing border — see the quiet-zone note below.

The quiet zone matters

Around every code sits a blank margin — the quiet zone — that scanners use to separate the code from whatever surrounds it. The images drawn and downloaded here include a two-module quiet zone inside the white frame on every side. Keep that white border when you place the PNG in a design: cropping tight to the black squares, printing the code over a photograph, or inverting it to white-on-dark are the three classic ways to make an otherwise perfect code unscannable.

Worked example

The code already drawn on this page encodes the default text, https://calcviso.com — twenty characters that fit a compact 25 × 25 module grid, which the formula above identifies as Version 2 ((25 − 17) ÷ 4 = 2). Point your phone camera at the preview and it should offer to open the site. Now type a longer address and watch the stats: the character count climbs, the version steps up and the grid grows denser; shorten the text again and the modules open back out. That trade-off between text length and scannability is the main thing to feel for before you print.

How to use this tool

  1. Type or paste the text or link the code should carry — it regenerates as you type.
  2. Check the stats: the QR version and module count tell you how dense the code is; fewer modules means a code that scans more easily, especially small or from a distance.
  3. Choose a PNG size: 256 px for documents and screens, 512 px for most printing, 1024 px for posters and signs.
  4. Press Download PNG and save the qrcode.png file.
  5. Test the downloaded code with your own phone camera — and again from a printout if it is going on paper — before you publish it.

Tips for codes that scan first time

Keep it short: a short link produces a sparse grid that scans from farther away and in worse light; if your address is long, shorten it before encoding rather than shrinking the printed code. Size honestly: as a rule of thumb a code is scanned from about ten times its printed width, so a 25 mm code on a table card is read from roughly 25 cm — print bigger for anything meant to be scanned across a room. Contrast is king: dark modules on a plain light background, never the reverse, and never over a busy image. Keep the quiet zone: the white border around the code is part of the code — leave it in place in your design. One code, one job: the code encodes exactly the text you gave it, forever — it cannot be edited after printing, so if the destination might change, encode a stable address you control that forwards people onward. And always test-scan the final artwork, at final size, with a real phone: thirty seconds of checking beats a thousand unusable leaflets.

Frequently asked questions

Do QR codes expire?
No. A code like this one encodes the text itself, not a reference to a database, so it works forever and even offline — a link inside it still needs the website it points to be alive, but the code will always offer that link.
Can I change where the code points after printing it?
No — the destination is baked into the pattern. If you might need to change it later, encode an address on a site you control and change where that address forwards to; the printed code stays the same.
Why won't a scanner read my printed code?
The usual causes, in order: the quiet zone was cropped away in a design, the contrast is too low (coloured or inverted codes are frequent offenders), the printed size is too small for the scanning distance, or the encoded text is so long that the modules are tiny. Re-download at a bigger size, keep the white border, and shorten the text if you can.
Keep going

Related text tools