QR Code Generator
Convert any URL to a downloadable QR code. Pick size, error correction and colours, add a logo, then download PNG or SVG. Client-side only.
Convert any URL to a scannable QR code — paste a URL, pick a size (128, 256, 512, 1024 or 2048 px) and an error correction level (L, M, Q or H), and the QR code renders immediately on canvas. Change the foreground and background colours, make the background transparent, or place your own logo in the centre. Download it as a PNG file named qr-code.png or as a vector qr-code.svg with one click. Works entirely in your browser via the qrcode library; neither the URL nor the logo image is sent to any server, and no sign-up is needed.
Higher levels can still be scanned when part of the code is damaged or covered, but the pattern gets denser. M suits most links.
PNG, JPG, WebP, GIF or SVG. The image is read in your browser and never uploaded.
Enter a URL above to generate a QR code.
How to generate a QR code from a URL
- 1
Paste your URL
Type or paste any URL — including https://, http://, or deep links — into the input field. The QR code preview updates automatically as you type.
- 2
Choose a size and error correction
Select 128 px for small digital use, 256 px for general-purpose print and web, or 512 px and up (1024, 2048 px) for large-format print such as posters and banners. Larger sizes improve scan reliability at a distance. Error correction M suits most links; the level moves to H on its own when you add a logo.
- 3
Style it (optional)
Set the foreground and background colours or switch on a transparent background, then upload a logo for the centre and adjust its size, white backing and rounded corners. Watch for the contrast warning, and use Reset to black and white to return to the default look.
- 4
Preview the QR code
The QR code renders immediately on an HTML canvas element using the qrcode library — no server request is made. Point your phone camera at the preview to verify it scans correctly before downloading.
- 5
Download as PNG or SVG
Click Download PNG to save qr-code.png at the selected pixel size, or Download SVG to save qr-code.svg, a vector file that stays sharp at any print size. Colours, transparency and the logo are included in both files; in the SVG the logo is embedded as a bitmap image. Either is suitable for embedding in documents, web pages, or printed materials.
QR Code Generator FAQ
- How do I generate a QR code from a URL for free?
- Paste your URL in the input field above, select a size (128 to 2048 px), and the QR code renders automatically. Click Download PNG or Download SVG to save it. No sign-up, no expiry, no watermark — free forever.
- What size QR code should I use?
- Use 128 px for small digital displays or quick tests. Use 256 px for general-purpose use — web pages, presentations, printed A4 flyers. For large formats such as posters or banners, download the SVG or a 2048 px PNG so edges stay sharp and the code scans reliably from a distance.
- Do generated QR codes expire?
- No. The QR code encodes the URL directly in the image pixel pattern — there is no external redirect or tracking service. As long as the encoded URL remains live, the QR code works indefinitely.
- Can I generate a QR code for Wi-Fi or plain text?
- This tool is optimised for URL input. QR codes can technically encode any text — Wi-Fi credentials (WIFI:S:mynet;T:WPA;P:mypass;;), plain text, vCards — but scanning behavior depends on the reader app.
- Is my URL sent to a server when generating a QR code?
- No. The QR code is generated entirely in your browser using the qrcode JavaScript library. Your URL is never transmitted to any server, making this tool safe for internal or private URLs.
- Which error correction level should I choose?
- The default is level M (medium), which allows about 15% of the QR code pattern to be damaged or obscured while still scanning correctly — a good balance for most print and screen use. You can switch to L (about 7%), Q (about 25%) or H (about 30%) with the Error correction buttons. Higher levels tolerate more damage but make the pattern denser. Uploading a logo switches the level to H automatically, because the logo covers part of the pattern; if you lower it again while a logo is present, the tool shows a warning.
- Can I change the QR code colours or add a logo in the middle?
- Yes. Pick any foreground and background colour with the colour picker or type a hex value such as #1d4ed8, or tick Transparent background to get a PNG with no fill behind the modules. Upload a PNG, JPG, WebP, GIF or SVG logo and it is drawn in the centre of the preview and of both downloads; the size slider stops at the largest area the H level can safely absorb for your URL, never more than 27% of the code width. Keep the modules darker than the background with a contrast of at least 3:1 — light-on-dark and pale colour pairs are flagged because some scanners cannot read them. Always test-scan the final file before printing.
References
- ISO/IEC 18004 — QR Code Standard
The international standard defining the QR code symbology — specifying data encoding modes, error correction levels, and module layout.
- MDN — Canvas API
The browser API used to render QR code pixel patterns to a bitmap — enabling client-side generation with no server round-trip.
- node-qrcode (generation library)
The open-source JavaScript library used by this tool to encode URLs and render QR code patterns to an HTML canvas element.
- W3C — Understanding WCAG 2.1 Non-text Contrast
Defines the relative luminance contrast ratio and the 3:1 minimum for graphics, which the colour check here uses as its warning threshold.
Related developer tools
URL to JSON
Parse any URL into its components — protocol, host, pathname, query params — as a structured JSON object.
Base64 Encode / Decode
Encode text or binary data to Base64 — useful for embedding QR code images as data URIs in HTML or CSS.
Image to Base64
Convert any image file to a Base64 data URI — handy when you want to embed the downloaded QR code PNG directly in markup.
URL Encode / Decode
Percent-encode or decode URLs before feeding them into the QR generator to ensure special characters are handled correctly.