QR Code Generator
Generate QR codes for URLs, plain text, Wi-Fi credentials, or contact cards. Customize size, error correction, and colors — everything happens in your browser.
What the QR Code Generator is useful for
The most common job is turning a long URL into a code people can point a phone camera at — a campaign landing page, a Google review link, a menu, a PDF download, or your LinkedIn profile. Because the code holds the full link, you can put it on a flyer, table tent, packaging, or a conference slide and skip making someone type a fiddly address.
Beyond links, you can encode plain text (a coupon code, a serial number, a short instruction), a phone number, or an email address. With the right text format you can also encode Wi-Fi credentials so a guest joins your network by scanning instead of reading out a password, or a contact card (vCard) that adds your name, phone, and email to someone's phone in one tap.
Because you control the pixel size and can export SVG, the same code works for a tiny 256 px web badge and a large print banner from one source. The foreground and background color pickers let you match a brand palette, and the higher error-correction levels make the code survive being printed, laminated, or partly covered by a small logo.
How to use it
Type or paste your content into the box, pick a size, margin, error-correction level, and colors, then click Generate. Once the preview appears, download it as PNG for everyday use or export SVG when you need to scale it large for print. A handy shortcut: press Cmd+Enter (Mac) or Ctrl+Enter (Windows) inside the text box to generate without reaching for the mouse.
A practical example: a printed table-tent for restaurant reviews
Say you want diners to scan a code and land on your Google review page. Paste the full review link into the content box. Set Size to something large like 1024 px and bump Error correction to Q (25%) or H (30%), because the card will be printed, handled, and may pick up smudges — the extra redundancy keeps it scannable.
Leave Margin at 2 (or raise it to 4) so there is enough white quiet-zone around the code for cameras to lock on, keep a high-contrast pairing such as dark foreground on a white background, and click Generate. Export SVG and hand that file to your print shop or drop it into your card layout; because SVG is vector, it stays razor-sharp whether the code prints at 3 cm or 30 cm.
Before sending it to print, test the on-screen preview with two or three different phones, then test the first physical proof under the actual lighting on the table. Only after a clean scan should you order the full run.
Supported input and output
Input is text you type or paste: a URL/link, plain text, a phone number, an email address, or formatted Wi-Fi and contact (vCard) strings. There is no image input — the tool does not read or decode an existing QR picture.
Output is a PNG raster bitmap (rendered from the on-screen canvas) and an SVG vector. Use PNG for quick sharing, email, slides, and the web. Use SVG when the code must scale to any size without blur — large posters, signage, or anything sent to a professional printer. You can set output size from 128 px up to 2048 px.
Privacy
The generator runs in your browser where supported. The text you enter is encoded locally and drawn onto a canvas on your own device — it is not uploaded to a server, and there is no account, login, or sign-up.
This matters because QR content is often sensitive: a Wi-Fi password, a private file link, a personal phone number, or a vCard with your contact details. Since files are processed in your browser, that information is not transmitted or stored by the tool. The only external request is loading the qrcode-generator library file itself; your actual content stays on your machine.
Quality and limitations
QR codes encode text only. Long inputs produce a denser code with more, smaller modules, which is harder to scan from a distance or at small print sizes — keep URLs short (use a redirect or short link) when the code must stay small.
The PNG size you request is rounded down to a whole multiple of the code's module count, so the exported pixel dimensions may be slightly smaller than the number you typed (for example, a request for 512 px might render at 504 px). This keeps every module a crisp, equal block with no blurry half-pixels. If you need an exact dimension, export SVG and scale that instead.
Colors are not validated for scannability. Light foreground on a dark background, or two tones that are too similar, can make a code that looks fine but fails to scan — many scanners expect dark modules on a light field. The tool also does not insert a logo for you; if you overlay one yourself, keep it small and use error correction Q or H so the redundancy covers the hidden area.
There is an upper bound on capacity. Very large blocks of text can exceed what a QR symbol can hold, in which case generation will report an error rather than produce an unscannable code.
Common problems and fixes
"Enter content first" — the text box is empty or only whitespace. Type or paste your link or text, then click Generate.
The code will not scan after printing — increase Error correction to Q or H, raise the Margin to 4 so there is a clear quiet zone, print larger, and keep strong dark-on-light contrast. Tiny codes with low contrast are the usual culprits.
"Content too large for QR" or a generation error — you are trying to encode more text than a QR symbol can hold. Shorten the content, replace a long URL with a short link, or split the information into a linked page instead of cramming it into the code.
The downloaded PNG is not exactly the pixel size I asked for — this is expected; dimensions snap down to a whole multiple of the module grid to keep edges crisp. Export SVG and resize it to the precise size you need.
Nothing generates and you see a library-load message — the qrcode-generator script did not download. Check your connection, disable a blocker if one is interfering, and reload the page.
Best practices and tips
Match error correction to the medium: L or M for clean digital displays, slides, and websites where the code stays pixel-perfect; Q or H for anything printed, laminated, curved, or carrying a small logo.
Always leave a quiet zone. A Margin of at least 2 (4 is safer for print) gives camera apps the blank border they need to detect the code reliably.
Keep the payload short. Shorter text means fewer modules, a cleaner code, and easier scanning from farther away — favor a short redirect link over a long tracking URL.
Export SVG for anything that will be resized or sent to print, and keep PNG for web, chat, and email. Generating once and saving both formats means you never have to recreate the code.
Test on real devices before committing. Scan the preview with more than one phone and, for print jobs, scan a physical proof under the lighting where it will actually be used.
Frequently asked questions
Can this tool scan or decode a QR code I already have?
No. It only creates a QR code from text you type or paste. It takes a link or string as input and produces a PNG or SVG; it cannot read an existing QR image and tell you what is inside it.
What is the difference between the PNG and SVG downloads?
PNG is a fixed-resolution bitmap — great for web pages, chat, email, and slides. SVG is a vector made of crisp rectangles, so it scales to any size without blurring, which is what you want for posters, signage, or files sent to a print shop.
Which error-correction level should I pick — L, M, Q, or H?
L (7%) and M (15%) suit clean digital displays where the code stays pixel-perfect. Q (25%) and H (30%) add redundancy so the code still scans when printed, smudged, placed on a curved surface, or partly covered by a small logo. The trade-off is that higher levels pack in more modules, making the code denser.
Why isn't my downloaded PNG exactly the size I entered?
The pixel size is rounded down to a whole multiple of the code's module count so every module is an equal, crisp block with no blurry half-pixels. A request for 512 px might render slightly smaller. If you need an exact dimension, export SVG and scale that instead.
Can I put my logo in the middle of the QR code?
The tool does not insert a logo for you, but you can overlay one yourself in an image editor after exporting. Keep the logo small and generate the code at error correction Q or H, because that extra redundancy lets the code still scan even though part of it is covered.
Can I change the QR code colors, and will any colors work?
Yes — there are foreground and background color pickers. But colors are not checked for scannability: most scanners expect dark modules on a light background, so a light-on-dark or low-contrast combination may look fine yet fail to scan. Keep strong contrast for reliable results.
Is my content uploaded anywhere when I generate a code?
No. The text is encoded and drawn in your browser where supported on your own device, with no upload and no account. That keeps sensitive payloads — like a Wi-Fi password, a private link, or a vCard — off any server. The only external request is loading the QR library file itself.
What's the maximum amount of text I can put in one QR code?
QR symbols have a finite capacity, and longer text produces a denser, harder-to-scan code. If you exceed the limit the tool reports an error instead of making an unscannable code. For long links, use a short redirect URL; for lots of information, link to a page rather than encoding it all.
Related tools
Image to Base64 encoder · Convert SVG to PNG · Favicon generator · Compress an image · Resize an image · Add a watermark to an image
Related guides
Image tool guides and how-tos · Tips and tutorials on the blog