πΉ Generate a QR Code
Switch to "Generate QR Code" tab (default view).
Enter text or URL in the input box (e.g., https://ninjafunction.com).
Select size (Small β XXLarge)
Download the QR code (PNG format).
πΉ Scan a QR Code from an Image
Switch to "Scan QR Code" tab.
Upload an image (click or drag & drop).
Select size (Small β XXLarge)
View the scanned result (text/URL appears below).
What Is a QR Code?
A QR code (short for Quick Response code) is a two-dimensional barcode that stores data in a square grid of black and white modules. Unlike a traditional one-dimensional barcode β the kind you see on product packaging, which can only encode a short string of numbers β a QR code can hold up to 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 bytes of binary data. It was invented in 1994 by Masahiro Hara at the Japanese company Denso Wave, originally to track automotive parts more efficiently on factory floors. The company released the specification publicly without exercising its patent rights, which is a large part of why QR codes spread worldwide and became the universal standard they are today.
A QR code works by storing data in a pattern that a camera-equipped device can decode instantly. When you point your phone's camera at a QR code, the software locates the code's boundaries, corrects for perspective distortion, samples the black and white grid, and interprets it back into the original data β usually in a fraction of a second. Modern smartphones have built-in QR decoding, so no special app is needed for most codes.
How a QR Code Is Structured
Every QR code is made from several distinct regions that work together to make scanning reliable:
- Finder patterns β the three large squares in the top left, top right, and bottom left corners. They tell the scanner where the code begins and ends, and let it calculate the size and orientation of the grid β even if the code is rotated or tilted.
- Alignment patterns β smaller squares distributed throughout larger QR codes. They help the scanner correct for distortion when a code is photographed at an angle or printed on a curved surface.
- Timing patterns β alternating black and white modules between the finder patterns. They tell the scanner the size of each module so it can sample the grid correctly.
- Format information β small regions that encode which error correction level and mask pattern the code uses.
- Data and error correction modules β the bulk of the code, containing your actual data plus redundant bits used to recover from damage or smudges.
- Quiet zone β the blank margin around the code (usually four modules wide) that keeps the scanner from confusing surrounding content with the code itself.
How Data Is Encoded
A QR code doesn't just draw your text as pixels β it goes through a precise encoding pipeline:
- Mode selection. The encoder picks the most efficient mode for your data β Numeric (digits only), Alphanumeric (digits and uppercase letters plus a few symbols), Byte (any 8-bit data), or Kanji (Japanese characters). Numeric is most compact; Byte is most flexible.
- Data encoding. The input is converted to a bit stream according to the mode.
- Error correction. Redundant data is generated using ReedβSolomon codes, allowing the QR code to still be read even if part of it is damaged.
- Module placement. The bits are arranged into the grid following a specific pattern, then masked so the code doesn't accidentally look like a finder pattern.
- Rendering. The final grid is drawn as black and white squares.
Error Correction: Why Damaged QR Codes Still Work
One of the most impressive features of QR codes is their resilience. Four error correction levels are available:
- Level L (Low) β recovers up to ~7% of the code. Best for clean digital displays.
- Level M (Medium) β recovers up to ~15%. A good default for most uses.
- Level Q (Quartile) β recovers up to ~25%. Good for printed materials that might get scuffed.
- Level H (High) β recovers up to ~30%. Used when part of the code will be covered β for instance, when a logo is placed in the center.
Higher error correction means the code must be larger to store the same amount of data, since more space is dedicated to redundancy. As a rule of thumb: use Level M for most cases, Level H if you plan to overlay a logo, and Level L only when the code will be displayed on a clean screen.
What Can a QR Code Store?
QR codes can encode any text, but in practice they almost always hold one of a few standard data types:
- URLs β the most common use. Scanning opens a browser to the specified website.
- Plain text β notes, addresses, serial numbers, or short messages.
- Wi-Fi credentials β the SSID, password, and encryption type, so guests can join a network without typing.
- Contact information (vCard) β name, phone, email, address, and website β added directly to the user's contacts.
- Email or SMS β with a pre-filled recipient and message.
- Phone number β initiates a call when scanned.
- Geolocation β latitude and longitude that open in a maps app.
- Payment data β used by some payment providers for peer-to-peer transfers.
Static vs Dynamic QR Codes
There are two kinds of QR codes, and the difference matters for any real-world use:
- Static QR codes β the destination is encoded directly into the pattern. You can't change it without regenerating the code, and it never expires. Our generator produces static codes β free, permanent, and private.
- Dynamic QR codes β the pattern points to a redirect URL owned by the QR code provider, who then forwards the user to the real destination. This lets you change where the code points after printing, and track scan analytics. The trade-off is that dynamic codes depend on the provider staying in business β if they shut down, all their codes stop working.
Common Uses for QR Codes Today
- Restaurant menus β a QR code on each table links to a digital menu that can be updated at any time.
- Marketing campaigns β posters, product packaging, and business cards include a QR code that leads to a landing page.
- Wi-Fi sharing β a printed QR code lets guests connect to your network without typing a password.
- Event check-in β ticketing apps show a unique QR code per attendee, scanned at the door.
- Digital payments β many payment apps use QR codes for peer-to-peer transfers.
- Product tracking β inventory, logistics, and manufacturing (the original use case).
- Document sharing β printed documents include a QR code linking to a digital version.
How to Make QR Codes That Actually Work
- Keep it simple. Shorter content produces a simpler code with fewer modules β easier to scan from a distance or on a small screen.
- Use high contrast. Black on white is ideal. Dark backgrounds with light codes can work but are less reliable.
- Leave a quiet zone. Don't crop the code tightly; leave at least four modules of blank space around it.
- Size for the scanning distance. The rule of thumb is 1:10 β the code should be roughly one-tenth the distance from the scanner. A code scanned from 2 meters away should be at least 20 cm across.
- Test on real devices. Different phones and apps handle edge cases differently. Always test a new code with at least two or three phones before printing thousands of copies.
- Consider error correction. If the code will be printed on material that might get scuffed or partially covered, raise the error correction level.
Is It Safe to Scan a QR Code?
QR codes themselves are neutral β they're just a data format. But because a code hides its destination until scanned, attackers have abused them for what's called quishing (QR phishing): printing malicious QR codes on parking meters, restaurant tables, or fake flyers to redirect victims to phishing sites. Safe practices:
- Preview the URL before opening β most phone cameras and QR apps show the destination first.
- Check the domain carefully. Look for typos like "paypa1.com" or subtle character swaps.
- Don't scan codes in unexpected places. A QR code stuck over a parking meter's original display is a red flag.
- Never enter credentials after scanning unless you're certain you landed on the legitimate site.
- When in doubt, don't scan. The cost of ignoring a QR code is usually lower than the cost of falling for a phishing link.
Why Generate QR Codes Locally?
Most online QR generators send your input to a server, generate an image there, and return it. That means your data β a URL with a tracking parameter, a Wi-Fi password, a phone number, contact details β travels across the internet to a third party you don't control. Our generator runs entirely in your browser using client-side JavaScript. Your content never leaves your device, is never logged, and is never stored on our servers. You can verify this by opening your browser's Developer Tools β Network tab and watching that no requests fire when you generate a code. Downloads (PNG, SVG) are created locally from the canvas and saved directly to your machine.