📱

QR Code Generators

A QR code turns something typed into something scanned, which matters wherever a person has your material in front of them but not in a form they can click. Restaurants linking to a menu, event organisers pointing to a schedule, shops sharing a review page and job seekers adding a portfolio link to a printed CV all use them for the same reason. The QR Code Generator takes the content you supply, most often a web address but also plain text, contact details or a Wi-Fi network, and encodes it as a square you can download and place in a design. A few practical points decide whether a code works in the wild. Keep the destination address short, since more data means a denser pattern that is harder to scan. Leave clear white space around all four edges, as printing right up to the border is the most common cause of failure. Print at a size suited to the reading distance, roughly a tenth of the distance across. Always scan the finished artwork with a phone before it goes to print, and test it under the lighting it will actually be read in.

1 tools available

Showing 1–1 of 1

How text becomes a scannable QR symbol

A QR code is a two-dimensional matrix of dark and light squares called modules. Your text is first converted to a bit stream using one of the standard encoding modes: numeric, alphanumeric, byte or kanji. Byte mode is what a typical URL uses. Reed-Solomon error correction codewords are then appended, which is why a code still scans when part of it is smudged or covered by a small logo. The bit stream is laid into the matrix around three large finder patterns in the corners, timing patterns and alignment patterns, and a mask is applied so that light and dark modules stay evenly mixed.

This tool handles that process for you. It URL-encodes whatever you enter, applies your chosen hexadecimal colours for the dark modules and the background, requests the symbol at the pixel size you selected, and adds a quiet zone: a clear margin around the symbol. The more characters you encode, the more modules the grid needs, so a long URL produces a denser pattern of smaller squares at the same output size.

Worked example: encoding a product page link

Suppose you want a code for the address https://example.com/products/winter-boots, which is 45 characters long. You paste that string into the content box, leave the size at 300, set the foreground to 000000 and the background to ffffff.

The generator reports the content it encoded, a size of 300 by 300 pixels and a character count of 45, and gives you a PNG to download. Because 45 characters in byte mode is a modest payload, the resulting grid is coarse: each module is comfortably large at 300 pixels, so the code scans easily even when printed small.

Now compare that with a tracking link such as https://example.com/products/winter-boots?utm_source=flyer&utm_medium=print&utm_campaign=winter2026, which is 109 characters. Encoding it at the same 300 pixels produces a noticeably finer grid, because far more modules must fit into the same square. Each module is roughly half the width, so the printed code needs to be larger, or the scan distance shorter, to read reliably. Shortening the link before encoding is usually the better fix.

Printing, colour contrast and testing before you commit

Scanners look for strong contrast between dark modules and the light background, so keep the foreground dark and the background light. Inverting the pattern, or pairing two mid-tone colours, is the most common reason a code fails to scan. If you use a brand colour, check its darkness rather than its hue: a deep navy or maroon works, a pastel usually does not.

For print, a practical rule of thumb is that the printed symbol should be at least one tenth of the intended scanning distance across. A code read from about one metre away wants roughly ten centimetres of printed width. Always leave the white quiet zone intact; cropping tightly to the pattern breaks detection on many phones.

Test the downloaded PNG with at least two different phones before sending anything to a printer, and test the destination page on mobile as well. Remember that a QR code is static: the content is baked into the pattern, so once a poster is printed you cannot change where it points. If the destination may move, encode a link you control and redirect it server-side.

Frequently Asked Questions

No. The code is a direct encoding of the text you entered, so it keeps working for as long as the destination does. Nothing about the image depends on this site remaining online. The only thing that can break is the web address itself, so avoid encoding links you might delete or move later.
Yes. You can set a hexadecimal colour for the dark modules and another for the background. Keep a strong light-to-dark contrast between the two, because scanners detect the pattern by brightness difference rather than hue. Pale foregrounds, dark backgrounds and two similar mid-tones are the usual causes of a code that will not read.
Size it to the distance people will scan from. A common guideline is a printed width of about one tenth of the scanning distance, so roughly 3 cm for a code read at arm's length and 10 cm or more for a wall poster. Also keep the pale margin around the symbol, as cropping it breaks detection.
Yes, by entering the appropriate URI rather than plain text. Typing tel:+441234567890 produces a code that opens the dialler, and mailto:hello@example.com opens a new message. Plain digits alone will simply be shown as text by most scanning apps, so include the scheme prefix if you want an action to trigger.
The QR standard tops out at roughly 4,296 alphanumeric characters or 7,089 digits, but long payloads are a bad idea in practice. Every extra character adds modules, so the printed squares shrink and scanning gets harder. Keep content under about 100 characters where you can, and shorten tracking URLs before encoding them.