Skip to content

Promote to production: robust QR/QRIS camera-photo decoding - #219

Merged
slaveofcode merged 3 commits into
mainfrom
develop
Aug 14, 2026
Merged

Promote to production: robust QR/QRIS camera-photo decoding#219
slaveofcode merged 3 commits into
mainfrom
develop

Conversation

@slaveofcode

Copy link
Copy Markdown
Owner

Promotes the QR decode overhaul: BarcodeDetector + zxing-wasm (tryHarder) + jsQR fallback, so QRIS Decoder and QR Code Reader reliably read real camera photos.

…izes

jsQR is unreliable on full-resolution phone photos (e.g. a 12MP shot of a
QRIS standee), so detection failed. New shared decodeQrFromFile retries the
decode at several downscaled sizes with inversion attempts, which decodes
real-world photos with glare and angle. Wired into QRIS Decoder and QR Code
Reader.
jsQR alone fails on real camera photos of QR/QRIS codes (glare, angle, small
code in a big frame). New decode pipeline: native BarcodeDetector first
(fast on Android/Chrome), then zxing-wasm with tryHarder (robust on every
browser incl. iOS Safari; wasm served same-origin from /zxing_reader.wasm),
then jsQR multi-scale as a fallback. Verified: a user's QRIS standee photo
now decodes end-to-end.
fix(qr): decode QR/QRIS from large photos (downscale + retry)
@slaveofcode
slaveofcode merged commit cdf0715 into main Aug 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant