How to turn a link into a QR code
- Paste your link into the Link → QR box above. The code is drawn as you type — there is no generate button.
- Adjust error correction, size, quiet zone or colours if you need to. The page warns you if a choice would stop scanners reading the result.
- Choose Download PNG for screens and slides, or Download SVG for anything going to print.
How to read a QR code from an image
- Open the QR → Link tab.
- Drop an image file onto the box, click it to browse, or press Ctrl + V to paste a screenshot straight from your clipboard.
- The decoded text appears along with its host name. Open link follows it; Copy takes the text.
For a code printed on paper or shown on another screen, Scan with camera is quicker than photographing it first. Camera access requires the site to be served over https, which it is here.
Should you download PNG or SVG?
PNG is a grid of pixels. It is the right choice for slides, web pages, emails and anywhere the code appears at roughly the size you exported it. Enlarge it well beyond that and the edges soften.
SVG stores the code as shapes rather than pixels, so it stays perfectly sharp at any size. Use it for posters, banners, business cards, book covers — anything going to a printer. If a designer or print shop asks for "vector", SVG is what they mean.
Which error correction level should you choose?
QR codes carry redundant data so they still read when partly damaged or obscured. More redundancy means a denser code for the same content.
| Level | Recoverable | Use it for |
|---|---|---|
| L | about 7% | Clean digital use only — a slide or web page where nothing can damage the code. |
| M | about 15% | The sensible default, and what this page starts on. |
| Q | about 25% | Printed material that will be handled — flyers, labels, tickets. |
| H | about 30% | Harsh conditions, curved surfaces, or when placing a logo over the centre of the code. |
Higher is not automatically better. A higher level packs more modules into the same square, so each module is physically smaller and a low-resolution scanner may struggle. If your code is going somewhere safe, M is usually the better trade.
How much data fits in a QR code?
The limits below are the maximum for a version 40 code, the largest in the specification. They were computed with the same encoder this page uses, not quoted from a table.
| Content | ECC L | ECC M | ECC Q | ECC H |
|---|---|---|---|---|
| Digits only | 7089 | 5596 | 3993 | 3057 |
| Uppercase letters and digits | 4296 | 3391 | 2420 | 1852 |
| Any text, counted in UTF‑8 bytes | 2953 | 2331 | 1663 | 1273 |
Digits pack far tighter than arbitrary text because the format encodes them three at a time. This page picks the tightest encoding your content allows automatically. Note that accented letters, Devanagari and emoji cost several bytes each, not one.
In practice you will rarely approach these limits. A typical web link of 40 to 60 characters produces a small version 3 or 4 code. Very long links produce dense codes that need to be printed larger to stay scannable — if you are encoding a long URL, a shortened one will scan far more reliably.
Why a QR code won't scan
In rough order of how often each is the culprit:
- Too little contrast. Scanners read light against dark. A tinted code on a coloured background can look fine to you and be invisible to a phone. This page warns you when the contrast drops too low.
- No quiet zone. The blank margin around a code is part of the format, not decoration. Cropping it away, or placing the code tight against other artwork, breaks detection. Keep at least four modules clear.
- Printed too small. A dense code needs physical size. As a rough rule, a code should be at least a tenth as wide as the distance it will be scanned from.
- Inverted colours. Light-on-dark codes do not work in every scanner, even though the format allows it. Dark modules on a light background is the safe choice.
- A logo covering too much. If you overlay artwork, raise error correction to H and keep the covered area small. Never cover the three large corner squares — those are how a scanner finds the code at all.
Frequently asked questions
Is my data uploaded anywhere?
No. Both the encoder and decoder run as JavaScript inside your own browser. Links you type, images you drop and camera frames are never transmitted, and there is no server to receive them. You can confirm this by opening your browser's network tab, or by disconnecting from the internet and reloading — the page keeps working.
Does it work offline?
Yes, once the page has loaded. Both libraries are bundled with the page rather than fetched from a content delivery network, so nothing external is needed at runtime.
Can I read a QR code from a screenshot?
Yes, and it is the fastest route for a code you have found on a web page or inside a PDF. Take the screenshot, then press Ctrl + V on the QR → Link tab. No need to save a file first.
Can it read a blurry or badly lit photo?
Often, yes. The decoder makes several attempts at different scales, and if those fail it estimates the lighting across the image and divides it out before trying again, which recovers faded print and photographs taken under uneven light. It is not magic — a code that is out of focus beyond recognition, or cropped so the corner squares are missing, cannot be recovered.
Do these QR codes expire, and do you track scans?
They never expire, and there is no scan tracking. The code contains your link directly, so it works forever and depends on nothing here. This is the opposite of a "dynamic" QR code, which encodes a redirect through a third party's server — those can be edited after printing and can count scans, but they stop working entirely if that company shuts the service down or starts charging.
Is it free, and is there a limit?
Free, with no account, no watermark, no daily limit and no restriction on commercial use. The codes are yours.
What can I put in a QR code besides a link?
Any text at all. Common conventions that phones recognise include mailto:you@example.com for an email, tel:+919876543210 to dial a number, and WIFI:T:WPA;S:NetworkName;P:password;; to join a wireless network. Plain text with no prefix simply displays on the scanning phone.
Should I trust a QR code I find in public?
Treat one like a shortened link from a stranger: the destination is hidden until you decode it, which is precisely what makes stickers placed over legitimate codes effective. Decoding here shows you the host name before you visit it, and flags plain http, addresses using non-ASCII characters that can imitate a familiar domain, and unusually long links.