Web Development

QR Code Generator / Reader

Generate a QR code from text or a URL, or read the content of an uploaded QR code image.

The QR code will appear here.

A QR code is a two-dimensional barcode that encodes text, a URL, or other data so a camera can read it instantly. This tool generates a QR code from text you type and, the other way around, reads the content out of an uploaded image — all in the browser.

How to use it

Common uses

Things to keep in mind

A higher error-correction level (H instead of L) makes the code more resistant to damage but also denser — it holds less data at the same physical size.

A QR code doesn't hide its content — anyone can read it the same way you did, so never encode passwords or private data in one.

Article about this tool: QR codes: how a link fits inside a square of pixels

Frequently asked questions

What does the error correction level (L/M/Q/H) change?

Higher levels, up to H at about 30%, keep the QR code readable even if part of it is damaged or obscured, but they also reduce how much data fits at a given size — L at about 7% fits the most data but tolerates the least damage.

Why can't it read my QR code image?

Reading uses the jsqr library to decode the image locally; it can fail on blurry, angled, or glare-heavy photos, so a clear, straight-on shot with good contrast works best.

Is my data or image uploaded anywhere?

No, both generating and reading QR codes happen entirely in your browser using JavaScript libraries — nothing leaves your device.

Why does how much data a QR code can hold depend on the type of content?

A QR code supports several encoding modes — numeric, alphanumeric, and byte — and each uses a different number of bits per character; numeric mode (digits only) is the most compact, while byte mode for arbitrary text (like non-Latin scripts) takes up the most space, so it fits fewer characters into a code of the same size.

What's the maximum number of characters a QR code can hold?

It depends on the code's version and error correction level — the largest version (40) with the lowest correction level L can hold up to 7,089 digits or 4,296 alphanumeric characters, but in practice, reliable scanning rarely uses more than a few hundred characters.

Articles: Web Development