QR Code Generator

Turn any text or link into a QR code in your browser. Set the size and color, watch it update as you type, then download a PNG. The data is encoded into the image itself and is not uploaded.

Updated

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 with the qrcodejs library as you type. Then download it as a PNG. It is a static code: the data sits in the pattern itself, so it never expires and makes no server call. Codes are generated at error-correction level H, about 30% recoverable, the most robust of the four levels.

  • Herror correction, about 30%
  • 80 to 800 pxsize range
  • Staticnever expires
  • 0server calls

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 of a second and refreshes as you type. Set the size from 80 to 800 pixels, choose the dark color, and click Download PNG. The light squares stay white so scanners keep the contrast they need.

The code is drawn on your own device, so the text you encode is not sent anywhere. Because the code is static, what you type is written into the black-and-white pattern. There is no hidden short link or redirect, and no dashboard that could later change the code 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 small 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, H, the highest of the four. Roughly 30% of the code can be smudged, torn or covered and it will still scan, which is why a QR survives printing on packaging or a small logo in the centre. Download saves the 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 (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 to get 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.

Longer text, busier code

short linklong linksame print size
If the code will be printed small, shorten a long link first.

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 is uploaded

Standards and 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 and limits

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 squares that scan more easily.

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

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

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

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

The four error-correction levels

0%10%20%30%L~7%M~15%Q~25%H~30% (this tool)share of the code that can be damaged
Level H gives a denser pattern in return for the most damage tolerance.

Leave the quiet zone

quiet zone, 4 modules
The download is the bare code. Keep a white margin about four modules wide wherever you place it.

Real-world uses

Link on print

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

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 it fits, and when it doesn't

Good for

  • A permanent link or piece of text that will not change
  • Print, packaging and signage, where level H tolerates damage
  • 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.

Tips and tricks

What we would do

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. 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 are no analytics and no server: the code carries your data directly, and the text you typed stays on 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 modules, each one smaller. Shorten the link and the code becomes simpler and easier to scan.
Can I change the background color?
No. The background is fixed to white to guarantee contrast, but 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 code is built in your browser and 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

Made with the qrcodejs library at its default error-correction level, H, which survives the most damage of the four levels. The text you encode stays in your browser.

Popular

Stopwatch and Timer

A stopwatch and a countdown timer on one page. Count up with lap splits, or count down from any number of minutes, timed from your device clock.

UtilityOpen Tool
Popular

Unit Converter

Convert length, weight and volume units in your browser. Pick a category, type a value and the result appears at once, worked out through a fixed base unit with standard factors.

UtilityOpen Tool

Text to Speech

Type or paste text, choose a voice and a speed, and your browser reads it aloud using the voices already installed on your device.

UtilityOpen Tool
PopularHot

Image Compressor

Compress an image to JPEG with a quality slider and watch the file size drop as you drag, in your browser.

ImageOpen Tool
PopularHot

Merge PDF

Combine several PDFs into one file in the order you choose, without leaving your browser.

PDFOpen Tool
PopularHot

Word Counter

Count words, characters, sentences and paragraphs as you type, with reading and speaking time alongside.

TextOpen Tool

Back to the QR Code Generator

Generate as many as you need at the top of the page. It runs on this device and needs no account.