QR Code Generator
Create QR codes from text, URLs, or contact information. Download as PNG or SVG instantly.
Quick Templates
QR Code will appear here
QR Code Options
How to Use:
- Enter the text, URL, or data you want to encode as a QR code
- Use quick templates for common formats (URL, Email, Phone, WiFi, vCard)
- Customize QR code options (error correction, size, colors)
- Click "Generate QR Code" to create your QR code
- Download as PNG or SVG, or copy the image
Template Examples:
- URL: https://example.com
- Email: mailto:example@email.com
- Phone: tel:+1234567890
- WiFi: WIFI:T:WPA;S:NetworkName;P:Password;;
- vCard: BEGIN:VCARD / VERSION:3.0 / FN:Name / TEL:+1234567890 / EMAIL:email@example.com / END:VCARD
Why the QR Code Gets Denser as You Type More
A QR code's grid isn't a fixed size โ the underlying spec defines 40 "versions," from a 21ร21-module grid up to 177ร177 modules, and the encoder automatically picks the smallest version that fits your data plus your chosen error correction overhead. That means the exact same physical print size holding a 200-character URL will have noticeably finer, denser modules than one holding a 20-character URL, and denser modules are harder for a phone camera to resolve at a distance or when printed small. If a QR code is destined for a business card or a product label, keep the encoded string short โ a URL shortener buys you real scannability margin, not just a tidier-looking link.
The four error correction levels (L/M/Q/H, corresponding to roughly 7%/15%/25%/30% of the code's data that can be reconstructed if damaged) are a direct trade-off against that same density: higher error correction adds redundant data to the same content, which pushes the encoder toward a larger version and denser grid for identical input. Choose L only for clean digital display where nothing will obscure the code; choose Q or H when the code will be printed small, laminated, exposed to wear, or will have a logo overlaid on the center (a common design technique that relies on the code tolerating that "damage").
The WiFi and Contact Templates Follow Real, Picky Specs
The "WiFi" template produces a string in the format WIFI:T:WPA;S:NetworkName;P:Password;; โ this isn't an arbitrary format invented for this tool, it's the de facto standard most phone camera apps recognize for auto-joining a network. The catch: if your actual network name or password contains a semicolon, comma, colon, or backslash, that character must be escaped with a backslash (\;, \,, \:, \\) or the scanner will misparse the field boundaries and either fail or join the wrong network. This tool doesn't auto-escape those characters for you โ check the generated string manually if your SSID or password uses punctuation.
The "Contact" template generates a vCard 3.0 block (BEGIN:VCARD ... END:VCARD). Every field is optional except BEGIN, VERSION, and END, but omitting FN (formatted name) causes some contact apps to import a nameless entry. If you need fields the built-in template doesn't include โ a postal address (ADR) or a job title (TITLE) โ you can edit the generated text directly in the input box before generating; the vCard spec tolerates extra recognized fields appended before END:VCARD.
PNG vs. SVG Export โ and a Contrast Warning
The PNG download captures the rendered canvas exactly as sized on screen (100-500px per the size slider) โ fine for web use, but it will look blocky if you scale it up significantly for large-format printing. The SVG download instead regenerates the code as vector paths from your same settings, so it scales to any print size (a banner, a poster) with perfectly crisp edges. If you're printing anything larger than a business card, use SVG.
Custom colors are purely cosmetic to this tool, but not to a scanner: QR decoding depends on contrast between the "dark" and "light" modules, not on any particular hue. Two colors that are visually distinguishable to a person (say, a mid-blue on a light-gray background) can have too little luminance contrast for a camera's binarization step, causing scan failures that never show up when you're just eyeballing the preview. If you customize colors, test-scan the actual output with a phone before printing at volume.
Frequently Asked Questions
My QR code looks fine on screen but won't scan when printed small โ why?
Almost always a density problem: long input text forces a higher-version (denser) code, and dense modules need more physical size and camera resolution to resolve. Shorten the encoded text (use a link shortener for URLs) or increase the print size rather than raising error correction alone.
Do I need the highest error correction level (H) for everything?
No โ H adds the most redundancy but also produces the densest code for a given amount of data, which can hurt scannability on a small or low-quality print more than the error correction helps. Reserve H for codes that will have a logo overlay or face real physical wear; use L or M for clean digital-only display.
My WiFi QR code isn't connecting devices โ what's wrong?
Check whether your network name or password contains a semicolon, comma, colon, or backslash โ those characters need a backslash escape in the WIFI: format, and this tool's template does not add that escaping automatically.
Should I download PNG or SVG?
PNG for web, email, or anything displayed digitally at roughly the size you generated. SVG for print, especially anything larger than a few inches, since it stays crisp at any scale.
Can this generate a dynamic QR code I can redirect later?
No โ this generates a static code that encodes exactly the text you enter. To change the destination after printing, you'd need to encode a URL you control (like a link shortener you manage) and update that redirect server-side; the QR code image itself can't be edited after generation.
