QR code generator
Create QR codes for links, Wi-Fi passwords or contact cards, tune colours and error correction, then download PNG or SVG.
A higher level makes the code denser but keeps it readable when partly covered or faintly printed. Printing on paper or sticking it outdoors? Pick Q or H.
Enter some content to generate the code.
Step by step
Pick a content type
The three buttons at the top decide which standard the code is encoded with: Link / text for any URL or plain text, Wi-Fi so the scanning phone joins the network by itself, and Contact card so the scanner opens a save-contact screen straight away.
Enter the content
Type or paste into the box below. The code is rebuilt on every keystroke, with no button to press. For a link, keep the
https://prefix - without it many scanners just show a line of text instead of opening the browser.Set the size, quiet zone and colours
Choose 256, 512 or 1024 pixels depending on where it will be used. The Quiet zone slider controls the blank margin around the code, and the two colour pickers set the code and background colours - the tool warns you if the two are too close together.
Choose an error correction level
Levels L to H decide how much of the code can be covered or printed badly and still scan. On screen, M is plenty; for print, outdoor signage or a logo placed over the middle, go up to Q or H.
Download a PNG or an SVG
PNG is ready to drop into a post, a slide or a message. SVG is a vector image that stays sharp at any size, which is what you want in a print file such as a banner, a menu or a business card.
Frequently asked questions
No. These are static QR codes: the content lives directly in the black and white squares and never passes through a redirect. A printed code keeps working forever, needs no account, cannot be switched off by anyone, and nobody counts the scans.
The trade-off is that the content is fixed: changing the destination means making a new code. If you need to edit the target after printing, point the code at a short link you control and change where that link goes.
No. The code is generated in JavaScript inside your own browser; the page never sends the content anywhere and never stores it. That matters most for Wi-Fi and contact codes: your network password and phone number never leave your machine.
QR codes carry built-in redundancy so they survive damage. The four levels set how much of the code can be lost and still be read: roughly 7% for L, 15% for M, 25% for Q and 30% for H.
In exchange, a higher level packs the same content into more squares, so the code looks denser. A practical rule: M on screen, Q for anything printed or stuck somewhere it will get scuffed, and H when you plan to drop a logo over the middle.
PNG is a pixel image at exactly the size you picked. Use it for social posts, slides, email and messages - anywhere that expects an ordinary image.
SVG is a vector image that describes the code geometrically, so it never goes soft however far it is scaled. Choose it for print work - banners, posters, menus, business cards - because the printer can blow it up to any size with crisp edges.
You can, but it is a bad idea. That blank border is called the quiet zone and it is how a scanner tells the code apart from whatever surrounds it; the standard asks for four modules' worth. Crop it off and place the code over a pattern or a photo, and failed scans go up noticeably. Only reduce it when the code sits on plain white and you have left space around it yourself.
Scanners look for contrast between dark and light modules, so keep the code genuinely dark on a genuinely light background. Deep brand colours - navy, maroon, charcoal - all work; pale ones such as lemon or light grey on white do not.
Avoid inverting the code, light on dark, because some older scanning apps cannot handle it. When the two colours are too close the tool shows a warning under the options; if you see it, test with a phone before sending anything to print.
It encodes the network name, security type and password in a format phone cameras understand. On scanning, the phone asks "Join this network?" and fills the password in - no guest has to type a long string.
iPhones since iOS 11 and Android since version 10 handle it straight from the camera. Older Android phones may need a dedicated scanning app. For a hidden network, tick Hidden network, otherwise the phone will not find the name.
The phone opens its add-contact screen with the name, company, job title, phone, email and website already filled in, so the other person just taps save. The code uses the vCard format, which iOS, Android and contact apps all read. Every extra field makes the code denser, so fill in only what you actually need.
The familiar print rule of thumb is that the code should be about a tenth of the scanning distance across. Scanned from 30 cm, as on a flyer in someone's hand, 3 cm wide is enough; a banner read from 2 m wants something nearer 20 cm.
Below about 2 × 2 cm you are taking a risk, especially when long content makes for a lot of tiny modules. Shorten the link so the grid stays coarse, and print from the 1024 pixel version or the SVG so the module edges stay sharp.
A single QR code has a ceiling - at best around 4,300 letters and digits at the lowest error correction level, and far fewer with accented Vietnamese, where each accented character takes more bytes. Raising the error correction level leaves less room again. When you hit this, shorten the content, replace a long URL with a short link, or drop the error correction one step.
This tool does not add logos, but you can download the code and composite one in a design app. Two things to remember: pick error correction level H before downloading, and keep the logo under roughly 20% of the code area, centred. Test the result on a few different phones afterwards - error correction covers what the logo hides, but only up to a point.
This tool runs entirely on your own machine. Nothing is sent to a server or anywhere else.