InterLAB tools · Logo · SVG/PNG · ZIP batch

QR code generator

A link, Wi-Fi, contact card, email, phone, SMS, place or event → a QR code that updates as you type. Colours, rounded modules, eye styles, a logo and a caption; contrast, quiet-zone and print-size checks; SVG, PNG and a ZIP batch of codes.

Free, no sign-up

ISO/IEC 18004 · runs on your device

The code is built in your browser: nothing you type is sent to a server (a request can carry a short summary — no password, contacts or text). The design and content are kept only in this browser, and the Wi-Fi password only if you turn that on yourself.

What goes into the code
What the camera will read
https://interlab.app

How the generator works

  1. Content

    Pick a type and fill in the fields: the string for the camera follows the format Android and iPhone understand, with special characters escaped. Field errors show immediately; the code updates without a button.

  2. Encoding

    The qrcode library (ISO/IEC 18004) splits the string into segments (digits, letters, UTF-8 bytes) and picks the smallest version and the mask. You can pin the version and mask by hand.

  3. Design

    Our own renderer draws the code from the module matrix: squares, rounded modules or dots, separate eye frame and centre styles, a quiet zone, a centred logo with a margin and a caption.

  4. Check and export

    A structural readability check and the print size for a scanning distance; SVG, PNG with the DPI stored, an image on the clipboard and a ZIP batch of codes.

Link

String format
URL (http/https), UTM tags as query parameters

Text

String format
UTF-8 text as is

Wi-Fi

String format
WIFI:T:WPA;S:…;P:…;H:true;; (ZXing format)

Contact

String format
vCard 3.0 (RFC 2426) or MeCard

Email

String format
mailto: with subject and body (RFC 6068)

Phone

String format
tel: (RFC 3966)

SMS

String format
SMSTO:number:text (ZXing format)

Location

String format
geo:lat,lon (RFC 5870)

Event

String format
iCalendar VEVENT (RFC 5545)

Payment string

String format
A payment system or wallet string as is, format not validated
What goes into the code

Standards and capacity

The QR code is ISO/IEC 18004. The higher the error correction level, the more of the code can be covered or damaged, but the denser the symbol for the same data. The tables are generated from the same constants as the generator.

L

Recovers
7 %
Logo budget
no logo
Bytes in version 5 / 10 / 25
106 / 271 / 1273

M

Recovers
15 %
Logo budget
no logo
Bytes in version 5 / 10 / 25
84 / 213 / 997

Q

Recovers
25 %
Logo budget
no logo
Bytes in version 5 / 10 / 25
60 / 151 / 715

H

Recovers
30 %
Logo budget
15 %
Bytes in version 5 / 10 / 25
44 / 119 / 535
Error correction levels (ISO/IEC 18004)

1

Modules
21×21
Bytes at M
14
Bytes at H
7

2

Modules
25×25
Bytes at M
26
Bytes at H
14

4

Modules
33×33
Bytes at M
62
Bytes at H
34

7

Modules
45×45
Bytes at M
122
Bytes at H
64

10

Modules
57×57
Bytes at M
213
Bytes at H
119

15

Modules
77×77
Bytes at M
412
Bytes at H
220

25

Modules
117×117
Bytes at M
997
Bytes at H
535

40

Modules
177×177
Bytes at M
2331
Bytes at H
1273
Versions and symbol size
  • Wi-Fi — the WIFI:T:…;S:…;P:…;H:…;; string (ZXing format, understood by Android and iPhone cameras); the characters \ ; , : " are escaped with a backslash. T:SAE (WPA3 only) is read by Android 10 and newer.
  • Contact — vCard 3.0 (RFC 2426) with long lines folded at 75 bytes, or MeCard (shorter, a smaller code).
  • Email — mailto (RFC 6068), phone — tel (RFC 3966), SMS — SMSTO, place — geo (RFC 5870), event — iCalendar VEVENT (RFC 5545).
  • Colour contrast uses the WCAG 2.x formula: from 4.5:1 the code reads reliably.

Readability check

The generator does not decode its own image — it checks what actually makes codes fail in practice:

Module/background contrast

Target
4.5:1 or more (3:1 is borderline)
Why
the camera must tell dark from light in poor light

Inversion

Target
dark modules on a light background
Why
some scanners cannot read light modules on dark

Quiet zone

Target
at least 4 modules
Why
an ISO/IEC 18004 requirement: without it the code is not found next to text

Logo

Target
at most 15% of the area, level H
Why
half the correction margin stays for dirt, glare and print; the size is reduced automatically

Density

Target
version up to 15 is comfortable
Why
a dense code needs a larger print

PNG pixels

Target
4 px per module or more
Why
otherwise module edges blur when scaled

Print size

Target
distance / 10, module at least 0.4 mm
Why
the rule assumes a code of up to 25 modules; denser codes scale up proportionally

Browser support

  • The code, SVG and PNG work in any modern browser on a phone or a computer.
  • Copying the image to the clipboard works in recent Chrome, Edge, Safari and Firefox (ClipboardItem); if a browser cannot, the generator says so and offers the PNG download.
  • The ZIP batch is built in the browser in small steps so the page never freezes; you can stop it.

Limitations

  • The readability check is structural, not recognition: it catches typical mistakes but does not replace a test scan.
  • A printed code cannot be “edited”: change the page the address leads to, not the code.
  • A payment string is stored as is: the generator does not validate a specific bank's or wallet's format.
  • Text is limited to 2900 bytes: more does not fit one QR code at a sensible density. A batch is up to 500 codes at a time.
  • The SVG caption uses the system Arial/Helvetica font: an editor without these fonts substitutes a similar one.

Privacy

  • The code is built in your browser: the content, the logo and the Wi-Fi password are not sent to a server and never appear in the page address.
  • The design and content are stored in this browser's localStorage; “Clear all” deletes them. The Wi-Fi password is stored only when “Remember the password in this browser” is on — it is off by default.
  • The logo is scaled down to 256 px and re-encoded as PNG: the source file's metadata is not kept.
  • Analytics receives only the fact of an export, its format and the content type — not the data.
  • The result reaches us only if you send a request yourself and keep the “Attach the result” box ticked — the form shows exactly what will be sent. Files and images are never sent with a request.
  • The request summary holds the content type, version and correction level, readability checks and print size; for a link — the domain only. The Wi-Fi password and network name, contact card details, texts, addresses and numbers never go into it.

Related tools

All tools · 40
Tell us about your task — we'll review your request and get back to you

Need the site or landing page the code leads to?

InterLAB builds sites and landing pages for offline traffic: menus, promotions, lead forms with source tags. The first short conversation about the task is free.

  • The first short conversation is free — we choose the format
  • NDA — yours or ours
  • Pricing after a brief and an agreed scope

Please do not send passwords, access keys or source code through this form — we will agree a safe way to share access separately.

By clicking the button you agree to the processing of your personal data.