Generate QR codes for URLs, text, emails, phone numbers and more. Download as PNG.
The QR Code Generator instantly converts any URL, plain text, email address, or phone number into a scannable QR code - entirely in your browser with no server uploads. Customize the foreground and background colors to match your brand, choose from four error-correction levels, and download the result as a high-resolution PNG at up to 1024x1024 pixels.
QR codes are generated entirely in the browser using a JavaScript implementation of the ISO/IEC 18004 QR Code standard. The library encodes your input string into a binary data matrix, applies Reed-Solomon error correction, and renders the result onto an HTML5 Canvas element. The QR text is not uploaded for processing - the encoding, rendering, and PNG export all happen locally in your tab. This means the tool works offline once the page is loaded.
Error-correction levels determine how much of a QR code can be damaged or obscured while still scanning correctly: Level L (7%), Level M (15%), Level Q (25%), and Level H (30%). Higher correction levels produce denser, more complex codes because additional redundancy data is embedded - useful if you plan to print the code on a surface that may wear, or if you want to overlay a logo in the center. For clean digital displays or simple links, Level M strikes the best balance between scan reliability and code size.
The QR Code standard supports up to 4,296 alphanumeric characters or 2,953 bytes of binary data, but practical scan reliability drops significantly as content length increases because the code becomes denser. For URLs, it is best practice to keep links under 200 characters - consider using a URL shortener for long addresses. Very long strings at high error-correction levels produce large, pixel-dense codes that budget smartphone cameras may struggle to decode reliably.
Custom foreground and background colors are fully supported, but contrast between the two colors is critical for reliable scanning - most QR readers use luminance contrast to distinguish modules, so a dark foreground on a light background is required. Avoid low-contrast combinations like dark blue on black, or light yellow on white, as these will cause scan failures on most readers. The tool allows any color combination so you can brand your codes, but always test scannability on a physical device before deploying.
Paid services typically offer dynamic QR codes (where the destination URL can be changed after printing), scan analytics, and branded landing pages - none of which are provided here. This tool generates static QR codes: the encoded content is fixed at creation time and cannot be edited later. If you need scan tracking or the ability to update a printed code's destination, a dedicated service is the right choice; for one-time use cases, print materials, or developer testing, this free in-browser tool is faster and requires no account.