QR code generator

Create a QR code for a link or text.

  • Free
  • Runs on your device
  • Private

Settings

Up to 1,000 characters in UTF-8.

A little help

  1. Enter the text or link. A web address, a UPI string, a phone number, a few lines of text — whatever you type is what gets encoded, character for character.
  2. Choose the image size. 512 × 512 px is fine for a screen or a small print. Pick 1,024 × 1,024 px for anything going on a poster or a board.
  3. Run it and look at the preview. The code appears on the page as a black-on-white PNG with a white margin around it.
  4. Scan it yourself, then download. Open your phone camera and point it at the screen before you save the file. This step is not optional if the code is going to be printed.

Your files stay on this device. No uploads, no account, no waiting for a server.

Large files and complex PDFs can take a moment on older phones.

Related tools

About this tool

A QR code is a picture of a piece of text. Whatever you type gets encoded into the pattern, and a scanner turns it back into the same text — usually a link, sometimes a payment string, occasionally a note on a label. You get a PNG at either 512 or 1,024 pixels square, black on white, with the white border that scanners need to find the edges of the code.

Two things about it are worth being clear on. It is static, which means the destination is baked into the pattern and cannot be changed once the code exists. Print a thousand flyers with a link that later moves and the flyers are wrong. It is also untracked: no service is registered, no redirect sits in the middle, and nobody — including us — can tell you how many people scanned it.

Test before you print. The code uses medium error correction, so it tolerates a bit of dirt and damage, and the modules are drawn at whole pixels so the edges stay crisp when the image is scaled up. None of that survives a code printed at two centimetres on a dark background with the margin trimmed off. Point a phone at the preview, then at the first copy off the printer, and only then do the print run.

How to use this tool

  1. Enter the text or link. A web address, a UPI string, a phone number, a few lines of text — whatever you type is what gets encoded, character for character.
  2. Choose the image size. 512 × 512 px is fine for a screen or a small print. Pick 1,024 × 1,024 px for anything going on a poster or a board.
  3. Run it and look at the preview. The code appears on the page as a black-on-white PNG with a white margin around it.
  4. Scan it yourself, then download. Open your phone camera and point it at the screen before you save the file. This step is not optional if the code is going to be printed.

What this tool does not do

  • Black on white only. No colours, no logo in the middle, no rounded modules.
  • The error correction level is fixed at medium and cannot be changed.
  • It does not build wifi, contact-card or payment payloads for you, and it does not check that what you typed is a valid link or UPI string. It encodes the text exactly as given.
  • The code is static. It cannot be edited, redirected, disabled or counted after it is made.
  • It is not verified to scan. Nothing here can promise that a particular printer, size or surface will work.

Common questions

How much can a code hold?

Up to 1,000 bytes. For a URL or English text that is about 1,000 characters. Hindi in Devanagari takes three bytes per character in UTF-8, so the practical limit there is closer to 330 characters. Past the limit you get an error rather than a broken code.

Can I change where the code points after I have printed it?

No. The destination is part of the pattern itself. This is a static code: nothing is registered with a service, there is no short link in the middle, and no redirect you could later edit. If you need to change the destination, you need a new code.

Does it count scans?

No. There is no account, no dashboard and no tracking of any kind, because there is no server involved — the image is drawn on your own device. If you need scan analytics you need a service that redirects, which this is not.

Will it definitely scan?

Test it and find out. The code is built with medium error correction, which lets a scanner read it through a smudge or a small tear, but printing it too small, on a curved surface, in low contrast or with the white margin cropped off will all defeat it. Scan the preview on screen, then scan the first print.

Why does the code not fill the whole square?

Two reasons, both deliberate. Four modules of white are left around the code because the specification requires that quiet zone and scanners rely on it. And each module is drawn at a whole number of pixels, so the pattern stays sharp when printed instead of getting the soft, half-pixel edges that make a code fail.

Can I make a QR for a WhatsApp chat?

Build the wa.me link with the WhatsApp link generator first, then paste it in here.