Skip to content

Generators

QR Code Generator

Create a QR code from any link, text or contact detail and download it as a PNG. Generated entirely in your browser.

Generators · QR Code GeneratorRuns in your browser
256px

How to make a QR code

  1. Type or paste your link or text into the Text or URL box. The field starts with https://alldaytoolkit.com as an example, accepts several lines, and the preview on the right redraws with every keystroke.
  2. Drag the Size slider. It moves in 32-pixel steps from 128 px to 512 px, and the readout beside it reports the real pixel width of the drawn image, which is the width the PNG will have.
  3. Point a phone camera at the preview to confirm it scans and opens the right thing before you print or share it.
  4. Click Download PNG to save qr-code.png. The button is greyed out while the text box is empty or the text is too long to encode, and an empty box also blanks the preview.

What the generator does with your text

The code is built in your browser by the open-source qrcode library and painted onto a canvas element. The library looks at the characters you typed and chooses the most compact encoding mode: numeric for digit-only runs, alphanumeric for upper-case letters, digits and a few punctuation marks, and byte mode (UTF-8) for everything else, including any URL with lowercase letters. A phone number written as tel:+442071234567 is split into a short byte segment and a numeric segment automatically.

The symbol version, which sets how many modules (the little squares) the code has, is also chosen for you. Version 1 is 21 × 21 modules and each version adds 4 modules per side up to version 40 at 177 × 177. The example address https://alldaytoolkit.com (25 characters) fits in version 2, a 25 × 25 grid. A 100-character tracking URL needs version 6 (41 × 41), 500 characters need version 17 (85 × 85) and 1,000 characters push the code to version 26 (121 × 121). The denser the grid, the bigger you must print it.

Fixed settings: level M error correction and a 2-module margin

There is no error-correction selector; every code is generated at level M, which is the common default because it balances capacity against resilience to scuffs and glare. Level H would be needed if you wanted to paste a logo over the middle of the code, and this tool does not offer that, nor custom colours: output is always black modules on a white background.

The white border (the quiet zone) is fixed at 2 modules on each side. The QR specification recommends 4, so when you place the PNG on a dark or busy background, leave extra white space around it yourself. On plain white paper or a white web page the built-in margin is enough.

LevelDamage it can recover fromUsed here
Labout 7% of codewordsNo
Mabout 15% of codewordsYes, always
Qabout 25% of codewordsNo
Habout 30% of codewordsNo

QR error-correction levels. This tool always uses M.

How much fits in one code

Beyond the limit the library refuses to build a symbol. The widget then clears the preview, prints a message under the box saying the text is too long and roughly how many characters would fit, and disables Download PNG, so you can never save a code that encodes less than what you typed. Shorten the text, or put it on a web page and encode the page's address instead.

Content typeMaximum lengthTypical example
Digits only5,596 charactersA long numeric ID or serial
Upper-case alphanumeric3,391 charactersWIFI:T:WPA;S:NAME;P:PASS;;
Bytes (UTF-8, most URLs and text)2,331 charactersAny web address, plain text, emoji

Maximum content at level M (version 40)

Size slider, pixels per module and print quality

The slider sets the width of the whole image including the margin, so the size of each module depends on how much data you encoded. A version 2 code is 25 modules plus 4 for the margins, 29 in all: at 128 px each module is about 4.4 px, at 512 px about 17.7 px. A version 10 code (57 modules) at 128 px gets only 2.1 px per module, which scanners may struggle with on screen; choose 384 or 512 px for anything beyond a short URL.

For print, 512 px is the sensible choice. A 512-px PNG printed at 2 cm wide works out at about 650 dots per inch, and a short URL printed at 2 to 3 cm scans from a normal reading distance. Content with several hundred characters should be printed at 5 cm or more.

A dense code can need more pixels than the slider position allows: a text of roughly 1,100 characters or more wants at least 181 px (177 modules plus the margins), which is above the 128 px setting. In that case the widget raises the requested width to that minimum, and the readout next to the slider switches to the real width of the drawn image with a note that it is the minimum for this much text. Short inputs are never affected.

Content formats phones recognise

  • Web address: start with https:// so the camera app offers to open it rather than showing plain text.
  • Phone number: tel:+442071234567 opens the dialler with the number filled in.
  • Email: mailto:hello@example.com starts a new message to that address.
  • Wi-Fi: WIFI:T:WPA;S:NetworkName;P:password;; lets guests join a network with one tap on most phones.
  • Contact cards (vCard or MeCard) and other multi-line formats work too: the text box keeps line breaks, so paste the whole card with BEGIN:VCARD and END:VCARD on their own lines.

When a code will not scan

  • The image is too small for the amount of text: move the slider up or shorten the content.
  • It was placed on a dark or patterned background with no extra white border.
  • The PNG was stretched to a different aspect ratio in a design tool; keep it square.
  • You printed a blurry copy of a 128-px file; regenerate at 512 px for print.
  • The URL is wrong: the code encodes exactly what you typed, including typos.

Frequently asked questions

Do the QR codes expire?

No. The QR codes are static and encode your content directly, so they never expire and keep working forever.

Can I change the colours or add a logo to the QR code?

No. This generator always draws black modules on white and offers no logo overlay, because reliable logo placement needs the H error-correction level, which the tool does not expose.

What is the longest text I can encode?

About 2,331 characters of ordinary text or URL, 3,391 upper-case alphanumeric characters or 5,596 digits, which are the version 40 limits at error-correction level M.

What happens when I paste more text than fits?

The preview goes blank, a message tells you the text is too long and the approximate limit for its character type, and the download button is disabled until you trim it under the limit.

Can I download the code as SVG instead of PNG?

Not here. The only export is a PNG rendered from the canvas at the slider size. For print at any scale, pick 512 px, which stays crisp at normal label and poster sizes.

Explore

113 tools. Zero uploads. One place.

Every tool opens instantly, works on your phone and keeps your files on your device.

QR Code Generator guides