Skip to main content
L
Loopaloo
Buy Us a Coffee
All ToolsImage ProcessingAudio ProcessingVideo ProcessingDocument & TextPDF ToolsCSV & Data AnalysisConverters & EncodersWeb ToolsMath & ScienceGames
Guides & BlogAboutContact
Buy Us a Coffee
L
Loopaloo

Free online tools for developers, designers, and content creators. Your files are processed in your browser and are never uploaded - no accounts required. A few network utilities (like What's My IP and Currency Converter) call public APIs to do their job and say so on their pages.

support@loopaloo.com

Tool Categories

  • Image Tools
  • Audio Tools
  • Video Tools
  • Document & Text
  • PDF Tools
  • CSV & Data
  • Converters
  • Web Tools
  • Math & Science
  • Games

Company

  • About Us
  • Contact
  • Blog
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Disclaimer

Support

Buy Us a Coffee

© 2026 Loopaloo. All rights reserved. Built with privacy in mind.

Privacy|Terms|Disclaimer
  1. Home
  2. Converters & Encoders
  3. QR Code Generator
Add to favorites

QR Code Generator

Generate QR codes and check each one scans by decoding it back before you download it

Runs locally in your browserMore converters & encodersJump to full guide

Related reading

  • How a QR Code Is Found and Decoded in an Image10 min read
  • QR Code Best Practices: Size, Error Correction, and Design Tips11 min read

Initializing in your browser…

You might also like

Barcode Generator

Generate linear barcodes with the quiet zone each standard requires, and read the bars back to check they are right

QR Code Reader & Scanner

Scan QR codes from images or using your camera. Supports URLs, WiFi, contacts, emails, phone numbers, and more. 100% offline - no data uploaded.

URL Encoder/Decoder

Percent-encode and decode against four character sets, build query strings, and take a URL apart

An example conversion

You need a QR code on a printed flyer that points to your signup page and still scans after being photocopied.

Encoded content

https://example.com/signup?ref=flyer
What QR Code Generator produces

Result, with the numbers the tool reports

33 x 33 modules at level Q, 4 module quiet zone
7 pixels a module, so the canvas is 287px not 300px
Decoded back at 287px and again at 3.5px a module
Nothing flagged

The URL goes into the matrix with Reed-Solomon error correction, and level Q means about a quarter of the symbol can be lost and still recovered. Two things then decide whether it scans, and the tool checks both. The quiet zone is four modules, which is what ISO/IEC 18004 requires and what a scanner uses to find the corners. The canvas is 287 pixels rather than the 300 asked for because 287 is 41 modules at exactly 7 pixels each: a fractional scale puts module edges mid-pixel, and measured, a 77-module symbol at exactly 300 pixels does not decode at all while the same symbol at 296 or 306 does. Finally the code is decoded back with jsQR, a decoder with no part in making it, at the size drawn and again shrunk to 3.5 pixels a module, which is roughly what a phone camera at arm's length gets. That second reading is the one that catches a code which only works from a clean screenshot.

What this converter does

A QR code is a 2D matrix of black and white "modules" (square cells) that encode data in a specific pattern defined by ISO/IEC 18004. The capacity depends on the chosen version (1 through 40, corresponding to grid sizes from 21x21 up to 177x177 modules) and the error correction level. A Version 1 code at error correction level L holds 25 alphanumeric characters or 17 bytes of binary data. A Version 40 code at level L holds up to 4,296 alphanumeric characters or 2,953 bytes. In practice, most generated QR codes for URLs are Version 3-7 (29x29 to 45x45 modules) because typical URLs fit comfortably there. The four error correction levels, L (7%), M (15%), Q (25%), and H (30%), control how much of the code can be obscured, damaged, or covered (for instance, by a logo embedded in the center) and still scan successfully. Reed-Solomon error correction codes add redundancy to the data. Higher correction levels consume more modules for redundancy, so at a fixed data capacity they require a larger grid. The sweet spot for most use is Level M for screen display and Level Q-H for printed materials that may be scratched, or when you want to overlay a logo (which requires H to survive).

How it works

The QR format supports several data encoding modes, and the encoder picks whichever is most compact for your input. Numeric mode (3 digits per 10 bits) is densest for pure numbers. Alphanumeric mode (2 chars per 11 bits, 45-character alphabet including uppercase letters, digits, space, and some symbols) is next. Byte mode (8 bits per byte) handles arbitrary bytes including lowercase letters and full URLs. Kanji mode uses 13 bits per character for Japanese. URLs almost always fall into byte mode because they contain lowercase letters; if your data is all uppercase and digits, the generator will automatically use alphanumeric mode, producing a smaller code for the same data.

Module size (the "pixel size" of each cell) and the quiet zone matter for scanner reliability. ISO/IEC 18004 section 6.3.8 requires a four-module quiet zone (blank margin) around the code, because that is what a scanner uses to find the finder patterns at the corners; this tool defaults to four and lets you change it, and says so when you set it lower. It also snaps the canvas to a whole number of pixels per module, which matters more than it sounds: a fractional scale puts module edges mid-pixel, and measured, a 77-module symbol rendered at 300 pixels gives 3.529 pixels a module and will not decode at all, while the same symbol at 260, 270, 320 or 340 pixels reads fine. Module size in printed output should be at least 0.4 mm for reliable phone-camera scanning at 30 cm distance. Rule of thumb: the scannable distance is roughly 10x the code's width, so a 2 cm code scans reliably at about 20 cm. For posters meant to scan from across a room, make the code at least 10 cm wide.

Color customization is supported but has real limits. Scanners use contrast detection to distinguish modules, which means dark-on-light designs work and light-on-dark ("inverted") designs sometimes fail on older scanners. Using colored modules (red on white, blue on yellow) works only if the contrast ratio is high enough; aim for at least 3:1 luminance contrast, which the tool computes and shows for whatever two colours you pick. Logos embedded in the center work only when error correction is H (30%) because the logo obscures modules that must be reconstructed from redundancy; the tool works out what fraction of the symbol area your logo covers and compares it against the recovery capacity of the level in use, from table 12 of the standard, so it can tell you the logo is too big rather than leaving you to find out. Every code is decoded back here with jsQR, an independent decoder that had no part in making it, both at the size drawn and again shrunk so each module is about three pixels, which is roughly what a phone camera at arm's length gets. That second reading is the one that finds real problems, because a code with too little contrast or too little margin often still decodes from a clean bitmap and fails from a photograph. It is still worth testing across at least iOS Camera, Android native camera and a scanning app before relying on a code in production, because a decoder in a browser is not a camera in a pocket.

How to use

  1. 1Enter the text, URL, or data you want to encode.
  2. 2Adjust size, colors, and error correction level as needed.
  3. 3Preview the generated QR code.
  4. 4Download as PNG for digital use or SVG for print.
  5. 5Test the code with your phone camera before distributing.

Key features

  • Supports URLs, plain text, email addresses, WiFi credentials, and more
  • Four error correction levels for different durability needs
  • Customizable foreground and background colors
  • Every code decoded back with jsQR before you download it, at the size drawn and again shrunk to about three pixels a module
  • A quiet zone control, four modules by default, which is what ISO/IEC 18004 requires
  • The canvas snapped to a whole number of pixels per module, which removes a class of code that will not scan
  • Contrast checked between the two colours, with the ratio stated
  • A warning when the modules are lighter than the background, which not every reader supports
  • A logo checked against what the chosen error correction level can actually recover
  • PNG and SVG export formats
  • Real-time preview as you type
  • Runs entirely in the browser, your data stays private

Tips & best practices

  • Always test your QR code with multiple devices before printing.
  • Keep URLs short, less data means a simpler, more scannable code.
  • Leave a quiet zone (white border) around the code for reliable scanning.

Where this fits

  • Marketing materials

    Add scannable links to flyers, business cards, and posters that direct people to your website or landing page.

  • Product packaging

    Link to manuals, warranty registration, or product pages by printing a QR code on the box.

  • Event check-in

    Generate unique QR codes for tickets or badges that can be scanned at entry.

  • WiFi sharing

    Create a QR code that lets guests join your network by scanning instead of typing a password.

  • Contact sharing

    Encode vCard data so others can add your contact info by scanning.

Frequently asked questions

How much data can a QR code hold?

Up to about 3,000 alphanumeric characters or 4,296 numeric digits at the lowest error correction level. Higher correction levels reduce capacity.

Which error correction level should I use?

Level M (15% recovery) is a good default. Use Level H (30%) if the code will be printed on surfaces that might get worn or partially covered.

Can I change the colors?

Yes, and the tool computes the contrast ratio between them and says when it is below about 3:1, which is where a camera stops being able to separate light modules from dark ones. It also flags a light-on-dark code, because a reader is not required to support one.

How do I know the code will actually scan?

The line under the preview says so. The code is decoded back with jsQR from the pixels that were painted, at the size drawn and again shrunk to about three pixels a module. If either reading fails, it says which and why.

Why is the image not exactly the size I picked?

Because it is rounded to a whole number of pixels per module. A fractional scale puts module edges mid-pixel and can make a code unreadable: a 77-module symbol at exactly 300 pixels does not decode, while the same symbol at 296 or 306 does. The panel states the size it actually drew.

Related tools and how they differ

  • QR Code Reader & Scanner: Decodes existing QR codes from an uploaded image or live camera; use it to read a QR and detect its content type, not to create one.
  • Barcode Generator: Creates 1D barcodes (CODE128, EAN-13, UPC, ITF-14, codabar); use it for retail or logistics linear codes instead of 2D QR matrices.
  • Barcode Reader & Scanner: Scans 1D product barcodes from an image or camera and offers ISBN/UPC lookup; use it to read linear codes, not to generate QR art.

Further reading

  • How a QR Code Is Found and Decoded in an Image10 min read
  • QR Code Best Practices: Size, Error Correction, and Design Tips11 min read

Private by design

Conversions run on your device in JavaScript. The values you enter are never sent over the network.