QR code studio

Turn a URL or arbitrary text into a QR code, then make it your own.

SquareCircle
SquareCircle
Dark and light dots use the selected shape and size. Eye backgrounds share the light-dot colour and opacity. Light dots start transparent to show your background image; raise their opacity to paint them and the eye backgrounds. This affects only the canvas and outer border. Light dots, eye backgrounds, background images and the logo backing keep their own opacity. Lower levels can make a smaller grid, but recover from less damage. Encoding mode and QR version are chosen automatically. The minimum grid is 21 × 21 modules. PNG, JPEG or WebP, up to 5 MB. Images stay in your browser and are not uploaded. Encoded text is sent to this server to generate the QR matrix. PNG, JPEG or WebP, up to 5 MB; kept in your browser. The logo keeps its proportions on a clear backing. High error correction is automatic while a logo is present. Larger logos cover more QR data. Keep it small and test the downloaded code; error correction does not guarantee recovery.

SVG URL
SVG URL unavailable until the form is valid.

Use SVG for crisp scaling and printing. Always test the downloaded code with your phone. Colours, small dots, circular eyes, background images and logos can reduce scan reliability. A four-module outer border is recommended; if you reduce it, provide equivalent clear space around the code.

How to use it

  1. Enter a full URL (including https://) or any text.
  2. Choose styles and colours; the preview updates automatically.
  3. Download PNG or SVG and test it before sharing or printing.

Change the destination later

Create a shortcut at short.nigelthorne.com, then encode that short URL here. Edit its destination later without reprinting the QR code. Visit stats count requests to the shortcut, not confirmed destination-page views. Plain text and direct URLs have no short-link stats.

Generate using a link

Plain PNG: /qrcode.jpg?p=Hello%20world. Styled SVG: /qrcode.svg?p=Hello%20world&roundness=1&eyeRoundness=0.44.

p is URL-encoded text. SVG options: roundness and eyeRoundness (0 square to 1 circle), fg/light/bg (URL-encoded hex colours), darkOpacity/lightOpacity/bgOpacity (0–1; eye backgrounds follow light dots), border (0–16 whole modules; 4 by default), scale (0.75–1), ecc (L, M, Q or H; H by default). Legacy shape and eyes values square, rounded and circle remain accepted. Numeric roundness takes precedence. QRCoder automatically chooses numeric, alphanumeric or byte encoding and the smallest fitting QR version. Background images and centre logos are available in browser downloads only. The legacy t parameter is ignored; the .jpg endpoint actually returns PNG.

Powered by QRCoder. Styling inspired by Nigel Thorne's contributions to its ArtQRCode renderer, with a Linux-compatible SVG renderer.