We use cookies

We use cookies and similar technologies to enhance your browsing experience, analyze site traffic, and personalize content and ads. By clicking "Accept", you consent to our use of cookies. Learn more in our Privacy Policy.

Free · in your browser · no signup

QR Code Generator

Turn any URL or text into a high-resolution QR code you can download as a PNG — free, in your browser, no watermark.

Text or URL to encode
QR code

This is a free QR code generator that turns any URL or text into a downloadable PNG. You paste in what you want encoded, the code renders instantly, and you save it as a high-resolution image. There is no account to create and no upload step: the encoding runs in your browser, so whatever you type never leaves your device.

The exported PNG has no watermark and no logo baked into it, which matters if you plan to drop the code onto a poster, a slide, product packaging, or a printed handout. You can pick a resolution large enough to survive being scaled up in a design tool without turning into a blur. It works for the common cases people actually reach for: a link to a site, a wifi join string, a phone number, a chunk of plain text, or anything else that fits inside a QR symbol's capacity.

How it works

You give the generator a string and it produces a QR symbol that any phone camera can read. Under the hood the text is encoded into a grid of black and white modules (the little squares), with error-correction data added so the code still scans even if part of it is dirty, creased, or partly covered.

Key things you control:

  • Content — a URL like https://example.com, or any plain text.
  • Resolution — the pixel size of the exported PNG. Bigger is better for print.
  • Quiet zone — the blank margin around the code that scanners need to lock on.

The whole pipeline runs locally in your browser. Nothing you enter is sent to a server, so you can safely encode an internal link, a draft URL, or a wifi password without it being logged anywhere. When you click download, you get a plain PNG file you own outright.

A worked example

Say you are printing a flyer and want people to land on a sign-up page. Paste the full URL into the input:

https://example.com/signup?ref=flyer-2024

Notice the tracking parameter (?ref=flyer-2024). Encoding it directly into the QR code means every scan from that flyer carries the tag, so your analytics can tell flyer traffic apart from other sources. No link shortener needed.

Then set a generous resolution (for example 1024×1024 or larger) and download the PNG. Drop that file into your layout tool at the size it will print. Because PNG is lossless, the edges of the modules stay crisp. Before sending to print, scan the on-screen preview with your own phone to confirm it resolves to the exact URL, including the query string.

Common use cases

QR codes are most useful when you need to bridge a physical thing to a digital one:

  • Print to web — flyers, posters, business cards, packaging, restaurant menus, event signage.
  • Slides and video — put a link on a presentation slide so the room can reach it without typing.
  • Wifi sharing — encode a join string so guests connect without you reading out a password.
  • Contact details — a phone number, email, or a vCard block so someone can save you in one tap.
  • Plain text — a serial number, a coupon code, or a short note meant to be read by a scanner, not necessarily opened as a link.

For anything that will be printed and scaled, export at a high resolution from the start. Re-blowing up a small PNG later softens the edges and hurts scan reliability.

Tips and gotchas

A few things that trip people up:

  • Keep the URL short. The more characters you encode, the denser the grid becomes, with smaller modules that are harder to scan from a distance or at small print sizes. A 30-character link scans far more reliably on a business card than a 300-character one.
  • Do not crop the quiet zone. The blank margin is part of the code. Designers sometimes trim it to make the code fit, and scanners then struggle. Leave the white border intact.
  • Mind contrast. Dark code on a light background is the safe default. Inverting it (light on dark) breaks many scanners.
  • Print size matters. A rough rule for print is roughly a 10:1 viewing-distance-to-code-width ratio, so a code meant to be scanned from one meter away wants to be around ten centimeters wide.
  • Test before you commit. Always scan the actual exported file with a real phone before you print a thousand copies.

Capacity and error correction explained

Two technical properties decide whether a given string fits and how robust the result is.

Capacity depends on the data type and the symbol version. A QR symbol has 40 versions (sizes); higher versions hold more data but pack in more, finer modules. Numeric data is the most compact, then alphanumeric (uppercase letters, digits, and a handful of symbols), then arbitrary bytes (which covers lowercase letters and most URLs). A typical URL is encoded as bytes, so it is less compact than pure digits.

Error correction lets a damaged code still decode. There are four levels, L, M, Q, and H, recovering roughly 7%, 15%, 25%, and 30% of the symbol respectively. Higher levels survive smudges and partial coverage but add redundancy data, which pushes you to a larger, denser symbol for the same content. For most print work, the middle levels are a sensible balance between resilience and module size.

Tips

  • Export at a high resolution (1024px or more) when the code will be printed, then place it at final size in your design tool rather than scaling a small image up.
  • Keep encoded URLs short; long links produce a denser grid that scans poorly at small sizes or from a distance.
  • Leave the quiet zone (the white margin) intact, scanners rely on it to find the code.
  • Stick with dark modules on a light background, inverting the colors breaks many readers.
  • Add tracking query parameters to your URL before generating so scans show up correctly in analytics.
  • Scan the exported PNG with a real phone before printing or publishing it.

How to use QR Code Generator

  1. 1Type or paste a URL or any text.
  2. 2The QR code updates live.
  3. 3Download it as a PNG.
  4. 4Generated locally — your data isn't uploaded.

Frequently asked questions

Does the QR code expire or stop working?

No. A QR code is just an encoded image; it has no server behind it and never expires. It keeps working as long as whatever it points to (for example a URL) is still live.

Is anything I type uploaded or stored?

No. The encoding happens entirely in your browser, so the text or URL you enter is never sent to a server or saved anywhere. You can safely encode private links or wifi passwords.

What resolution should I download for printing?

Pick a size at least as large as the final print dimensions in pixels, and ideally larger. 1024×1024 or higher gives crisp module edges. Avoid generating a tiny PNG and scaling it up afterward.

Can I change where a QR code points after I have printed it?

Not directly, the destination is baked into the image. If you need to redirect later, encode a URL you control (such as a redirect link) so you can change the target on your end without reprinting.

Why does my QR code fail to scan?

The usual causes are a missing quiet zone (white margin), too little contrast, an inverted color scheme, printing it too small for the viewing distance, or cramming so much text in that the modules became tiny. Test with a real phone and simplify the content if needed.

Is there a limit to how much text I can encode?

Yes. A QR symbol's maximum capacity is a few thousand characters for byte data, but practically you want far less. The more you encode, the denser and harder to scan the code becomes, so keep it concise.

Will there be a watermark or logo on the downloaded image?

No. The exported PNG is a clean QR code with no watermark, logo, or branding added, so you can place it anywhere.

Can it encode things other than links, like wifi or a phone number?

Yes. You can encode any text, including formatted strings that phones recognize, such as a wifi join string, a phone number, or contact details. The code carries whatever text you put in.

← All toolsRead our guides →