QR Code Generator

Turn any text or link into a QR code in your browser — set the size and color, watch it update live, then download a PNG. The data is encoded into the image itself; nothing is uploaded.

Utility ToolsPopularHot Free No upload Instant

Loading QR Code Generator…

Your browser is preparing the tool. It runs 100% locally.

Quick Answer

Type a URL or any text, pick a size (80–800 px) and a dark color, and the tool draws a QR code live using the qrcodejs library — then you download it as a PNG. It is a static code: the data is encoded directly into the pattern, so it never expires and makes no server call. Codes are generated at error-correction level H, about 30% recoverable, which is the most robust of the four levels.

What the QR Code Generator Does

Paste a link, a Wi-Fi string, a phone number or plain text into the box; a QR code appears within a quarter-second and refreshes as you type. Drag the size from 80 to 800 pixels, choose the dark color, and click Download PNG when it looks right. The light squares stay white so scanners keep the contrast they rely on.

Everything is drawn on your own device, so the text you encode is never sent anywhere. Because the code is static, whatever you type is baked into the black-and-white pattern itself: there is no short link hidden in the middle, no redirect, and no dashboard that could later change it or switch it off.

How It Works

The qrcodejs library takes your text, picks the smallest QR version (symbol size) that will hold it, and lays out the dark and light modules — the little squares — according to ISO/IEC 18004. It draws them onto an HTML canvas at the pixel size you set.

The tool keeps the library's default error-correction level, which is H, the highest of the four. Roughly 30% of the code can be smudged, torn or covered and it will still scan — that redundancy is what lets a QR survive being printed on packaging or having a small logo dropped in the centre. Download saves that canvas as a PNG.

Generation algorithm

  1. Read the input. Take the text or URL exactly as typed — a link, Wi-Fi credentials, a vCard or any UTF-8 text.
  2. Pick the version. qrcodejs chooses the smallest of the 40 QR versions — from 21×21 up to 177×177 modules — that can hold your data at error-correction level H.
  3. Encode with Reed–Solomon. The data is encoded and interleaved with error-correction codewords, so a damaged code can still be decoded.
  4. Lay out the modules. Finder patterns, timing rows and your data are placed on the grid, then masked for the most scannable balance of black and white.
  5. Render and export. The grid is drawn to a canvas at your chosen pixel size and dark color; Download saves it as a PNG.

Technical Details

Libraryqrcodejs (renders to canvas)
StandardISO/IEC 18004 QR Code symbology
Output size80–800 px square (default 240)
ColorsCustom dark color; fixed white background
Error correctionLevel H — about 30% recoverable (library default)
VersionsAuto-selected, 1–40 (21×21 to 177×177 modules)
CapacityUp to ~4,296 alphanumeric / ~2,953 bytes at high versions
Output formatPNG (raster)
Where it runsIn your browser — nothing uploaded

Standards & references

  • ISO/IEC 18004 — the international standard for QR Code symbology — module layout, the four error-correction levels, and the 40 versions from 21×21 to 177×177 modules.
  • Error-correction levels L, M, Q, H — Reed–Solomon recovery of roughly 7, 15, 25 and 30% of the code respectively; this tool generates at level H.
  • Quiet zone — the standard asks for a clear margin of at least four modules around the code so scanners can locate it.

Accuracy & Limitations

Codes are generated at level H, so they tolerate damage well but are denser than a level-L code holding the same text. A long URL makes the pattern busier and the modules smaller — shorten the link first if you want larger, easier-to-scan squares.

The downloaded PNG is the bare symbol. Keep a white margin — the quiet zone — of about four modules around it wherever you place it, or some scanners will struggle to lock on.

Contrast matters. The background is locked to white, but a pale dark color can stop the code scanning. Choose a dark, saturated color; plain black is safest.

It is a static QR. Once it is printed you cannot change where it points or see how many times it was scanned. Editable destinations and scan analytics need a dynamic-QR service with a backend — a different kind of tool.

PNG is raster, so enlarging the file too far softens the edges. For big prints, generate at a larger pixel size from the start rather than scaling up afterwards.

Real-World Use Cases

Link on print

Put a scannable link on a poster, business card, menu or slide so people open it without typing a thing.

Wi-Fi sharing

Encode a Wi-Fi network string so guests join by scanning instead of reading out a password.

Products and packaging

Print a code on a label or box; level-H correction means it still scans if the print gets scuffed.

Contact or check-in

Share a vCard, ticket reference or payment string as a code people scan at the door.

When to use it — and when not to

Good for

  • A permanent link or piece of text that will not change
  • Print, packaging and signage — level H is damage-tolerant
  • Sharing Wi-Fi, contact or payment details offline
  • A quick code with no account and no watermark

Not the best choice for

  • Changing the destination after it is printed
  • Counting or tracking how often it is scanned
  • Codes you need as crisp vector art for large-format print

Need to edit the link later or see scan counts? That needs a dynamic-QR service with a backend. Want a 1-D retail or inventory code instead of a 2-D one? Use the barcode generator, which outputs scalable SVG.

Frequently Asked Questions

What is the difference between a static and a dynamic QR code?
A static code, like the one this tool makes, holds the data inside the pattern itself — it is free, permanent and makes no server call, but you cannot edit it or track scans. A dynamic code encodes a short URL that redirects through a server, so it can be edited and counted, usually for a fee.
Can I change where the code points after I print it?
No. This is a static code, so the destination is fixed once it is generated. To point somewhere else, make a new code and reprint.
Does it track or log scans?
No. There is no analytics and no server involved — the code carries your data directly, and nothing about it leaves your device.
What error-correction level does it use?
Level H, the highest. About 30% of the code can be damaged or covered and it will still scan. That robustness costs a little density, making the pattern slightly busier than a lower level would.
Can I put a logo in the middle?
The tool itself does not overlay logos, but because the codes are level H you can add a modest logo in an image editor afterwards and it will usually still scan. Keep it small, centred, and test it before printing.
Why does my long URL make such a busy code?
More data forces a higher QR version, which means more — and therefore smaller — modules. Shorten the link and the code becomes simpler and easier to scan.
Can I change the background color?
The background is fixed to white to guarantee contrast; you can change the dark color. Avoid pale dark colors, which can stop the code scanning.
What size should I export?
Bigger for print. A common rule of thumb is roughly 2 cm wide for arm's-length scanning, and larger again for posters. Since the output is a PNG, generate it large rather than enlarging a small one later.
Is the text I encode private?
Yes. The whole thing runs in your browser; the text you type is never uploaded.
What can I encode in it?
Any text: URLs, Wi-Fi strings, phone or SMS links, vCards, plain notes. High versions hold up to about 4,296 alphanumeric characters or 2,953 bytes, though level H lowers those ceilings.
Do I get a PNG or an SVG?
This tool downloads a PNG. For an infinitely scalable vector QR you would want an SVG generator; for 1-D codes, the barcode generator here outputs SVG.
Do I need to leave a margin around it?
Yes — a quiet zone of about four modules of white space on every side. The export is just the symbol, so add that margin when you place it.

References

Generated with the qrcodejs library at error-correction level H — the library's most robust default — and the text you encode never leaves your browser.

Popular

Stopwatch and Timer

Use Stopwatch and Timer anytime, free and private, with no app to install.

UtilityOpen Tool
Popular

Online Notepad

Use Online Notepad anytime, free and private, with no app to install.

UtilityOpen Tool
Popular

Unit Converter

Unit Converter — a handy, instant browser utility you will bookmark.

UtilityOpen Tool
Trending

Barcode Generator

Barcode Generator online: fast, lightweight and always one click away.

UtilityOpen Tool
Trending

Random Name Picker

Use Random Name Picker anytime, free and private, with no app to install.

UtilityOpen Tool
Trending

Pomodoro Timer

Use Pomodoro Timer anytime, free and private, with no app to install.

UtilityOpen Tool

Ready to try the QR Code Generator?

It is free, private and runs entirely in your browser — no sign-up, no uploads, no limits.