QR Code Generator
A QR code generator that writes your data straight into the modules rather than a redirect link that can expire. Eight payload types, PNG or SVG, 200 at a time.
The code
Every line becomes its own code, up to 200. Wi-Fi, contact, SMS and the centre logo are single-code options.
Drag & drop or paste an image here, or
How to use
- Leave the switch on One code unless you want a batch, then choose what you're encoding from the Type menu.
- Fill in the fields that appear. Only the ones belonging to that type are shown, and the picture updates a beat after you stop typing.
- Set Error correction. M is fine on a screen, Q or H for anything printed, and H whenever a logo will cover the middle.
- Change Size if 256 pixels isn't what you need. The field takes any whole number from 128 to 1024; type one outside that and it says so and names the size it drew instead.
- If you changed the colours, look for the low-contrast warning under Foreground, in either mode. A pale foreground is the most common reason a code refuses to scan.
- Grab the PNG or the SVG, print it at the size it will really appear, and scan it with a phone before the run goes out.
About this tool
Type into the Content box and the code beside it redraws as you go. The page loads with https://example.com sitting in the box and a scannable code already drawn from it, so the QR code generator shows its work before you type a character. Whatever is in that box is what gets encoded, character for character. No short link hides in the middle, which means nobody counts your scans and nobody can repoint the code once it is printed.
The Type menu covers eight payloads, and each one assembles the exact string a phone expects. Email writes a mailto: with the subject and body percent-encoded. Phone call writes tel: with the spaces stripped out. Wi-Fi network writes the WIFI:T:WPA;S:name;P:secret;; form that both Android and iOS read as a join prompt, with WEP and open networks in the Security menu and a checkbox for hidden ones. Contact builds a vCard 3.0, SMS builds SMSTO:, Location turns a latitude and longitude into geo:37.7749,-122.4194 (a Use my location button can fill both straight from your device once you grant the browser permission), and Calendar event wraps a VEVENT in a VCALENDAR with your start and end times.
Error correction starts at M, which is roughly 15% recovery. The menu also offers L at about 7%, Q at 25%, and H at 30%. A higher level means a denser grid and a code that survives a scuff, a coffee ring, or a sticker corner. Size takes any whole number of pixels from 128 to 1024, and the arrows move in eights. Foreground and Background each take hex or any CSS colour, with a swatch beside the field that opens your system's picker; they start on black and white, and a pair too close to scan draws a warning at Foreground before you download something a camera can't resolve. Every code keeps the four-module blank border the QR standard asks for, so a scanner can find its edges.
Download PNG for a screen, a slide deck, or a chat message. Download SVG when a printer is going to scale it, because vector modules keep hard edges at poster size. A logo goes in the middle at 22% of the code's width, sitting on a small pad of your background colour, and it lands in the PNG only, so Download SVG greys out while one is set and says why. Flip the switch at the top to Many codes, paste up to 200 lines, and you get one PNG per line inside qr-codes.zip.
A Wi-Fi code for the café counter
Pick Wi-Fi network, put GuestWifi in Network name and hunter2cafe in Password, and leave Security on WPA/WPA2. What gets encoded is WIFI:T:WPA;S:GuestWifi;P:hunter2cafe;; and any semicolon or comma inside either field is backslash-escaped on the way in, so a password with punctuation doesn't split the payload.
For a card taped next to the till, raise Error correction to Q and set Size to 512, then take the SVG so the print shop can scale it. Test it on a phone that has never joined the network: a correct Wi-Fi payload offers to connect rather than opening a browser.
Good to know
- The data is baked in. A typo in the URL means generating and reprinting a new code, because there's no editing the destination after the fact.
- Content caps at 1,000 characters. Past that the grid gets so dense that ordinary phone cameras give up on it.
- A centre logo is painted onto the PNG canvas, so Download SVG is withdrawn while one is set, with the reason beside it. Remove the logo and the vector file comes back, carrying the plain code.
- Many codes treats every line as plain text or a URL. Wi-Fi details, vCards, SMS payloads and the logo are single-code options, and the grid previews the first twelve lines before the ZIP is built.
Frequently asked questions
Will the code keep working if this site disappears?
It will. A static code holds the destination in the black and white squares themselves, and a scanner decodes them without asking any server for help. The codes that stop working are the dynamic kind, where the image really holds a short link owned by whoever generated it, and that link can be switched off or put behind a plan.
What do L, M, Q and H actually mean?
They are the four error-correction levels, and the menu prints the recovery share beside each one: about 7% for L, 15% for M, 25% for Q, 30% for H. The higher the level, the more of the code can be missing or covered before a scanner gives up, and the more squares it needs to carry the same content. M is the default and it handles most on-screen use.
Why does my code scan on my phone but not on a colleague's?
Contrast or physical size, nearly always. The foreground has to read clearly darker than the background, and a pair that falls below a 3:1 ratio draws a warning at Foreground, for one code or two hundred, since that is roughly where cameras start failing. If the colours are fine, the code is printed too small for its density. Shorten the content, raise the error correction, or print it larger.
How many codes can I make in one go, and what are the files called?
Two hundred lines per run, one code per line. Each becomes its own PNG at whatever size and error-correction level you set, numbered qr-001.png upward inside qr-codes.zip. On screen you see the first twelve as tiles, with the full count under them. Good for table numbers, shelf labels, or a sheet of event badges.
Can I make a code that joins a Wi-Fi network instead of opening a link?
Switch Type from Text or URL to Wi-Fi network and you get fields for the SSID, the password, and a security menu offering WPA/WPA2, WEP or an open network. There is a Hidden network checkbox for the ones that do not broadcast. Seven other types sit in the same menu, including a vCard contact, an SMS with the message pre-filled, a map location and a calendar event.
PNG or SVG for a printed poster?
SVG. It is vector, so a print shop can set it at any size and the module edges stay crisp. A PNG is a fixed pixel grid and starts going soft once it is enlarged past the size you downloaded. The exception is a code with a centre logo: the logo is composited onto the canvas, so it exists only in the PNG.
Missing something in QR Code Generator? Suggest a feature →
Tell someone who needs this.