What it does
This tool turns any text — a URL, a Wi-Fi password, a phone number, a message, anything — into a QR code image that can be scanned with a phone camera or QR reader. You can also customize it with your own colors and embed a logo/image in the center. Everything happens locally in your browser; nothing you type or upload is sent anywhere.
Try it
How it works
- Your text is encoded using the QR code standard (Reed–Solomon error correction), choosing the smallest QR version that fits the data.
- The error correction level controls how much of the code can be damaged/obscured and still scan correctly — higher levels are more robust but produce a denser code. This matters a lot when adding a logo, since the logo covers part of the code:
| Level | Recovery capacity |
|---|---|
| L | ~7% |
| M | ~15% |
| Q | ~25% |
| H | ~30% |
- If you upload a logo/image, it's drawn on an offscreen canvas, optionally clipped to a circle, and composited on top of the center of the QR code — with a white "quiet" padding behind it so the scanner can still distinguish the surrounding modules.
- Foreground/background colors let you recolor the QR code to match your branding (dark modules use the foreground color, empty space uses the background color).
- The result is rendered onto a
<canvas>element, entirely client-side, and can be downloaded as a PNG image.
Notes
- Always test scan any QR code that uses a logo or custom colors before printing/publishing it — some combinations (large logo, low contrast colors, low error correction) can make it unreadable.
- Keep the logo under ~25–30% of the QR code's area, and use High (H) error correction when adding a logo — this gives the decoder enough redundant data to reconstruct the part covered by the image.
- Avoid very light/low-contrast foreground colors — scanners rely on a strong contrast between foreground and background.
- Longer text requires a larger/denser QR code to store the same data reliably — keep URLs short (a link shortener helps) for the cleanest codes, especially when also embedding a logo.
- Everything (encoding, image compositing, coloring) runs 100% in your browser: no data or image is uploaded or logged.