Browser-only PNG output

QR Code Generator

Create a fixed 512×512 PNG QR code from exact text or an HTTP(S) URL without sending the payload to a QR-generation server.

Payload mode

Choose plain text or an absolute HTTP/HTTPS URL. No mode is selected initially.

Enter at least one non-whitespace character. Valid input is encoded without trimming or normalization. Maximum source length: 2,000 UTF-16 units; maximum encoded size: 1,024 UTF-8 bytes.

0 / 1,024 UTF-8 bytes

Generated result

No QR code generated

Select a mode, enter a payload, and generate explicitly. Nothing is generated on page load.

Exact text and URL encoding

Text mode preserves the accepted string exactly, including leading and trailing spaces, internal whitespace, line breaks, case, and Unicode. For example, two entered lines remain two encoded lines.

URL mode accepts only complete HTTP or HTTPS URLs with a host. Parsing validates syntax and scheme; it does not normalize, shorten, redirect, host, verify, or track the destination.

The 1,024-byte limit measures UTF-8 bytes rather than JavaScript character count. Unicode characters can use more than one byte.

Output and scan limits

The encoder chooses the QR version and mask automatically, then creates a black-on-white 512×512 PNG with error correction M and a four-module quiet zone.

Error correction M can tolerate some damage but does not guarantee scanning. Device, scanner application, payload length, display size, contrast, print quality, focus, and lighting all affect results.

Printing or resizing may reduce readability. Scan-test the downloaded code with intended devices before publishing or distributing it.

Privacy and destination safety

QR encoding occurs in your browser. The entered text or URL is not sent to a QR-generation server by this tool.

Calzivo does not control what happens after a scanner opens an encoded URL. Verify destination URLs before sharing them and remember that a destination can later change.

The generated PNG contains the payload in QR form. Anyone who receives the image may be able to decode it.

Worked examples and common failures

Text: enter Calzivo QR test. URL: enter https://example.com/path?q=hello. The exact accepted input becomes the QR payload.

Whitespace-only text, URL whitespace, bare domains, relative URLs, non-HTTP schemes, malformed URLs, and payloads above 1,024 UTF-8 bytes are rejected.

If scanning fails, use the original PNG, avoid cropping its white quiet zone, increase its physical size, preserve contrast, and test under realistic lighting.

Frequently asked questions

Does Calzivo host or shorten the URL?

No. The exact validated URL is encoded locally without hosting, shortening, redirection, or tracking.

Is scanning guaranteed?

No. Scanner support and real-world conditions vary, so test the final downloaded or printed code.

What does error correction M mean?

It adds recovery information for some damage, but it cannot guarantee that every scanner or damaged code will work.

Why can Unicode reach the limit sooner?

The limit is measured after UTF-8 encoding, where many Unicode characters require multiple bytes.

Sources and related tools

Implementation and QR construction details are based on the node-qrcode documentation and DENSO WAVE QR Code guidance.