UtilityToolsLab

© 2026 UtilityToolsLab. Built and maintained by the UtilityToolsLab Team.

Free eBooks·About·Changelog·Privacy Policy·Terms of Service·Report a bug
HomeImage & DesignQR Code

Related Tools

Image CompressorHEX ↔ RGBColor PaletteGradient GeneratorContrast CheckerImage ResizerFormat ConverterGrayscale ConverterBrightness & ContrastWatermark ToolMetadata ViewerImage PixelatorFlip & RotateImage Cropper

QR Code Generator

Generate QR codes from any URL, text, email or phone number instantly and download them as PNG. Free, no sign-up, and runs in your browser.

You Might Also Like

All Image & Design

Color Palette

Generate harmonious color palettes from any base color. Supports complementary, triadic, analogous, and monochromatic schemes.

Gradient Generator

Generate linear, radial, and conic CSS gradients visually. Add unlimited color stops, adjust angles, use presets, copy ready CSS.

Slug Converter

Convert any text into a clean, SEO-friendly URL slug with hyphen, underscore, or dot separators. Handles accented characters.

Image Compressor

Compress JPEG, PNG, and WebP images in your browser. Control quality and max dimensions — no server upload required.

Most QR generators on the web post your text to a server and hand back an image. This one does not: the QR Code Generator implements the ISO/IEC 18004 encoding in the page, builds the module matrix, and paints it onto a canvas. Nothing about the link, the phone number or the message you encode ever leaves the tab.

Four input types put the right prefix on for you. urland text encode what you typed, email prepends mailto: and phone prepends tel:, which is the difference between a scanner offering to open a message and offering to search the web for a string of digits.

Encoding runs at error correction level M, the middle of the four levels, which spends about 15% of the code on redundancy and tolerates that much damage or obstruction. Output sizes are 128, 200, 300 and 400 pixels, and the canvas is drawn with hard pixel edges rather than smoothing so the modules stay crisp when scaled.

Getting a Scannable Code Out of a Link

  1. Pick a type first, because switching afterwards clears the field. The placeholder changes with it, from https://example.com to +1 555 000 0000 and so on.
  2. Type or paste the value and press Generate, or just hit Enter, which does the same thing without moving your hands.
  3. Choose a size. Once a code is on screen, changing the size regenerates it automatically rather than waiting for another click.
  4. Scan it with a phone before you use it anywhere. That is the only real test, and it takes 5 seconds.
  5. Press Download PNG for a file named qr-code- plus a timestamp. Print it larger than you think you need: a code below about 2 cm square is unreliable on a camera at arm's length.

Capacity Limits and Version 7

  • Versions 1 through 7 are supported, spanning grids from 21 modules square to 45. The encoder picks the smallest version your data fits into, so a short link produces a visibly sparser code than a long one.
  • Capacity at level M runs 13, 25, 41, 61, 83, 105 and 121 bytes for those seven versions. Exceed the last of them and you get Input too long for QR code (max ~120 characters; fewer for non-ASCII text, which uses multiple bytes per character).
  • Characters are not bytes. An accented letter costs 2 and most emoji cost 4, so a 40-character message in Japanese will not fit where a 100-character English one does.
  • The cap stops at 7 deliberately. Versions 8 and above at this error-correction level split data across two differently sized correction blocks, which this encoder does not model, and generating them anyway would produce codes that look right and refuse to scan.
  • A 4-module quiet zone is added on every side, so the drawn code is smaller than the pixel size you chose. That white margin is part of the specification and cropping it is the usual reason a printed code fails.

Not a Substitute for a Dynamic QR Service

  • The code encodes your text directly, so the destination is fixed forever. Print 500 flyers and change the URL, and all 500 are dead. Point the code at a redirect you control if the target might move.
  • There is no scan tracking, because there is no server. Nobody counts the scans, including you.
  • Logos, colours and rounded modules are not offered. The canvas draws plain black squares on white, which is the most reliable thing a scanner can be given.
  • vCard, WiFi and calendar payloads are not built in. You can still encode one by choosing text and pasting the raw payload, but the 121-byte ceiling makes a full vCard unlikely to fit.
  • Level M is not adjustable. If a code will be printed on something that creases or gets dirty, a generator offering level Q or H gives you more margin than this one can.
Size:

🔒 Generated entirely in your browser — no data sent to any server. Scan with any QR reader app.

Enter text above and click Generate

Works offline · No server upload · Private