QR code generator
Turn a link, a Wi-Fi login, an email or a phone number into a QR code you can download as PNG or SVG.
Runs entirely in your browser
Up to the QR standard's maximum: about 2,900 bytes of text at the lowest error correction (fewer at higher levels). Text is encoded as UTF-8.
How to make a QR code
- Pick what the code should hold: text or a link, a Wi-Fi login, an email or a phone number.
- Fill in the details. The preview updates as you type.
- Choose error correction, size and colours if you want something other than the defaults.
- Download the code as a PNG or an SVG.
How a QR code holds your text
A QR code is a square grid of dark and light squares called modules. Your text is turned into bytes (this tool uses UTF-8, so accents and emoji survive), split into blocks, and padded with extra error-correction data computed with Reed-Solomon codes. The extra data is what lets a scanner read a code that is smudged, scratched or partly covered.
The grid size is chosen automatically: more text, or a higher error-correction level, means a larger grid with smaller squares. Printing small? Keep the text short and leave the quiet zone in place, because scanners use that blank border to find the code.
Wi-Fi codes use a standard text layout that phones recognise and offer to join. Email and phone codes use mailto: and tel: links. Everything is generated on this page and nothing is sent anywhere.
Tips
- Always scan a printed code with a real phone before you distribute it.
- Picking brand colours? Check they contrast well with the Color converter and contrast checker; dark modules on a light background scan best.
- Need a random secret for the Wi-Fi network? Use the password generator.
- Building a data blob to encode? See Base64 encode and decode.
Questions
Is my text or Wi-Fi password sent anywhere?
No. The code is drawn in your browser from what you type, and nothing is uploaded or stored. The Wi-Fi password only ever appears inside the QR code you download.
Do the codes expire?
No. A QR code is only an encoding of the text you gave it, so it works as long as that content is valid. A code pointing to a web address stops being useful only if that page goes away.
Which error correction level should I choose?
Level M (the default) restores about 15% of damaged modules and suits most uses. Choose Q or H if the code will be printed small, on a rough surface, or have a logo placed over it. Higher levels make the code denser.
Why does the size I picked change slightly?
A sharp QR code needs every square to be a whole number of pixels. The PNG size is rounded down to the nearest size that divides evenly by the number of squares, and the tool shows the exact pixel size. The SVG scales to any size.
Why is there a colour warning?
Scanners expect dark squares on a light background with strong contrast. Light-on-dark (inverted) codes and low-contrast pairs fail in some apps, so check with your own phone before printing.
What can I put in the code?
Any text, including accented letters and emoji (encoded as UTF-8), plus the Wi-Fi, email and phone formats that phones recognise. If the input is too long for the largest QR code, you will see an error and can shorten it or lower the error correction.