QR generator

Byte-for-byte compatible with the PHP QR Code library behind the old kpay.uk/qr endpoint. Runs entirely in your browser — nothing is sent anywhere.

Download PNG
Version
Modules
PNG size
Encoded bytes
Fingerprint
Why this page exists, and how to check it yourself

The old /qr endpoint used PHP QR Code 1.1.4 (2010100721), a port of libqrencode, called as QRcode::png($text, $file, 'L', 4, 2). Off-the-shelf JavaScript QR libraries do not reproduce its output: over a 48-case sample, qrcode-generator matched 5 and node-qrcode matched 18. The differences come from phpqrcode's mask selection and from a quirk in its mode-splitting arithmetic, so the page below is a direct port of the vendored library rather than a substitute for it.

The port was checked against the PHP original over 8,634 inputs spanning every QR version 1–40 — all identical, including which inputs it rejects as over-capacity — and the canvas rendering was compared pixel-by-pixel against PHP GD's PNG output.

To re-check any single value against the original library:

php -r 'require "library/qrlib.php";
echo md5(join("\n", QRcode::text("YOUR TEXT", false, "L", 4, 2))), "\n";'

That MD5 is the Fingerprint shown beside the QR code. If they match, the module matrices are identical.