Skip to content
Utilities2026-06-195 min read

Online QR Code Generator: Create Custom QR Codes Quickly

What Is a QR Code

A QR Code (Quick Response Code) is a 2D barcode invented by Denso Wave in 1994. It stores information in both horizontal and vertical dimensions, offering far greater capacity than traditional barcodes. This site's QR code generator turns any URL or text into a scannable code in the browser.

A QR code stores one string. URLs, plain text, phone numbers, SMS, Wi‑Fi configs, and vCards are conventional text formats—not separate generator “modes.”

Why You Need a QR Code Generator

  1. Marketing: Products, posters, and cards that jump to a site
  2. Mobile payments: Platform payment codes (often dynamic)
  3. Wi‑Fi sharing: Encode a WIFI:… string for one-tap join
  4. App distribution: Download-link codes
  5. Developer debugging: Open preview URLs on a phone quickly
  6. Ticketing: Credential payloads in electronic tickets

Implementation notes

The QR code generator uses npm qrcode (^1.5.4) via QRCode.toCanvas:

ItemBehavior on this site
Error correctionL / M / Q / H, default M
Canvas size128–512 px, step 32, default 256
Quiet zone (margin)Fixed 2 modules (not adjustable)
ColorsFixed #000000 on #ffffff
ExportPNG only (canvas.toDataURL('image/png'))
UXLive redraw on input—no separate Generate button
PayloadFree text; Wi‑Fi / vCard must be typed in the standard string form

This generator supports foreground/background colors and PNG / SVG download. For eye/dot styles or a logo, use the QR code designer. Verify with the QR code decoder. Clean long URLs with the URL encoder / URL params parser; Base64 fragments → Base64 encoding guide.

Error correction and version capacity

Error correction (Reed–Solomon)

LevelApprox. recoverable areaCapacityTypical use
L~7%LargestClean screens
M~15%LargeGeneral (site default)
Q~25%MediumPrint, light wear
H~30%SmallestOutdoor, dirt, planned center cover

Higher correction → more modules for the same content → denser pattern. On small print, H can scan worse than M.

Version ladder

Versions 1–40 span roughly 21×21 to 177×177 modules. Spec maxima (version 40, level L):

Data typeMax (L)
Numeric7,089 characters
Alphanumeric4,296 characters
Binary/byte2,953 bytes
Kanji mode~1,817 characters

Short links (~20–40 chars) stay on low versions; long utm_* URLs push version up and get “too dense” on small cards. “~40 characters for URLs” is a print-friendly heuristic, not a hard limit.

URL payload vs plain text

  • URL: Phones usually open a browser. Use a full form (include https://). CJK paths and query reserved characters expand via percent-encoding—see URL encoding: spaces and special chars and Chinese percent-encoding.
  • Plain text: Display only—no automatic navigation.
  • Structured strings: WIFI:T:WPA;S:name;P:password;; (trailing double semicolon), BEGIN:VCARD…END:VCARD. Malformed strings show as plain text instead of joining Wi‑Fi or saving a contact.
Dense:  https://example.com/products/2026/summer/collection?ref=qr&utm_source=poster&utm_medium=print
Safer:  https://ex.co/abc123

Longer content → denser modules → smaller physical module size → harder print and camera work.

How to use this site's generator

  1. Open the QR code generator
  2. Enter URL, text, or a Wi‑Fi / vCard string
  3. Adjust size and error-correction level
  4. Download the PNG when the preview looks right

Rounded eyes, module shapes, or logos → QR code designer. Simple two-color and SVG export work in this generator.

Checklist before shipping

  1. Shorten payloads; keep tracking on the landing page, not in the modules.
  2. Contrast: you can pick foreground/background colors; keep dark-on-light and check with the contrast checker.
  3. Quiet zone: margin is 2 here—do not crop the white border in the poster.
  4. Three scanners: iPhone camera, Android camera, and (for CN materials) WeChat scan.
  5. Round-trip: decode with the QR decoder so the string matches byte-for-byte.

Dense modules, logos, and pitfalls

  • Density: High ECC + long URL + tiny print → modules under ~0.4–0.8 mm fail on phones. Shorten or enlarge first.
  • Logo occlusion: Budget is area, not “any cover.” Blocking a finder corner fails most decoders. This generator has no logo upload—composite externally, prefer Q/H, keep cover roughly 15–20%, and real-scan.
  • Bottom-right weakness: No finder there; avoid heavy decoration.
  • Static vs dynamic: Direct payload = static (this tool). Redirect short link = dynamic (editable, countable, service-dependent). High-volume print often encodes a domain you control, then changes the redirect target.
  • Phone scan distance ≈ 10× module size — if modules are 0.5 mm, expect reliable scans from about 5 cm; posters need larger modules
  • Quiet zone — keep a clear margin (about four modules) around the code; bordered marketing layouts often crop it by accident
  • Contrast — dark modules on light ground; light-on-dark needs invert-aware scanners (many phone cameras still struggle)
  • Verify — generate with the QR generator, print a proof, then decode with the QR decoder or a phone before ordering 10,000 stickers

FAQ

What's the Difference Between QR Codes and Barcodes?

Barcodes are 1D with limited capacity. QR codes are 2D with far more capacity and error correction.

Are QR Codes a Security Risk?

Yes—phishing and malware links. Decode/preview URLs before opening; do not blind-scan unknown print. Publishers: third-party shorteners can brick entire print runs if they shut down—prefer a domain you control.

Do QR Codes Expire?

The pattern does not. URLs, pages, and Wi‑Fi passwords do. Regenerate or keep a mutable redirect layer.

Dynamic vs static?

Need to change the target after print → dynamic. Otherwise static is simpler. This site emits static patterns.


From the ToolVault developer notebook. More developer tools at the homepage.