QR Code — Free Online Tool on Toolpile
Every tool you need, one place
PDF, Image, AI, Dev, and Business tools — free, private, no signup.
Toolpile uses cookies for analytics and ads. The tools themselves keep your files in the browser — that doesn't change. Read the full policy
PDF, Image, AI, Dev, and Business tools — free, private, no signup.
About QR Code
A QR code is just a URL (or any string) encoded as a 2D grid of black and white modules. Most 'QR generators' differ only in styling — the actual encoding is a fixed standard. Here's what matters: size, error-correction level, and why most code-making apps secretly make worse codes than they claim.
QR codes were invented by Denso Wave in 1994 for automotive inventory tracking. The format is an ISO standard: a grid of black/white squares (modules), three large squares in the corners (finder patterns) for camera alignment, a fourth smaller square inside (alignment pattern), and data blocks interleaved with error-correction codes. The standard is open and royalty-free, which is why every generator produces the same fundamental output — differences are purely cosmetic.
Four error-correction levels exist: L (7%), M (15%), Q (25%), H (30%). The percentage is how much of the code can be obscured or damaged while still decoding. Level L produces the smallest/densest codes and is fine for screen-displayed URLs. Level H is required if you want to put a logo in the center (the logo 'damages' the center; H's redundancy compensates) or if the code will be printed small on a business card that might get scuffed. Most consumer QR apps silently default to L even when the code is for print — which is why half the codes printed on flyers stop scanning after a few weeks.
Data capacity scales with both version (size) and error-correction level. A short URL like `toolpile.org` fits in the smallest 21×21 grid (Version 1). Adding a wifi password with SSID + key pushes it to Version 4 or 5. A 500-character string needs Version 10+. This tool auto-selects the smallest version that fits your data at the chosen error-correction level.
A QR code's readability is set by the physical module size — each black/white square on the printed code. A phone camera can reliably decode modules as small as 0.2mm, but only when held very close and in good light. Practical thresholds: business card (scanned at arm's length) → modules ≥ 0.4mm → code printed ≥ 20×20mm. Poster (scanned from 2-3 meters) → modules ≥ 2mm → code printed ≥ 100×100mm. Billboard (scanned from across a street) → modules ≥ 20mm → code printed ≥ 1×1 meter.
The rule of thumb: the code's side length should be at least 1/10 the scanning distance. If people will read it from 1m away, print it at 10cm minimum. This tool exports at configurable DPI; set 300 DPI for print, 96 DPI for screens.
Another frequent failure: insufficient 'quiet zone' — the white margin around the code. The spec requires 4 modules of blank space on every side. If your design crops right up to the code's edge, scanners often fail to find the finder patterns.
Can QR codes track me?
A plain QR code is static — it just encodes a URL and has no tracking. What tracks you is the DESTINATION URL. Services like QR.io, Bit.ly, or Linktree add tracking by encoding a redirect URL that logs each scan. If you want no tracking, encode your destination URL directly with this tool and skip the shorteners.
Why do some QR codes have custom colors and shapes?
The spec allows any dark-on-light combination — you can swap black for deep navy, red, even gradients as long as contrast stays high enough. Rounded 'dot' patterns replace the default squares while preserving scan reliability. Logo embedding uses the center of the code at error-correction level H. This tool supports basic color + logo; for extensive branding, dedicated services like Scanova or QR Code Monkey offer more options.
What's the maximum data a QR code can hold?
Theoretically: 7089 digits, 4296 alphanumeric chars, or 2953 bytes at Version 40 + level L. Practically: anything over ~500 chars produces a code too dense to scan reliably on a phone. For long content, encode a short URL that redirects to the full content.
Why does my QR work on my phone but not my friend's?
Almost always either (a) your test used a URL scheme the other phone's browser doesn't handle (e.g., `mailto:` on some Android configurations), or (b) the code was copied to a non-QR image format (like JPEG with heavy compression) that blurred the module edges. Re-export as PNG or SVG.
Do dynamic QR codes exist?
Not in the QR spec itself. 'Dynamic QR codes' are just static codes pointing at a URL you control; you change the URL's redirect destination server-side. The QR code on the physical product stays the same forever. If you need updatable destinations, encode a URL on a domain you own and handle redirects yourself.
Related tools