QR Reader (Camera)
Scan QR codes using your device camera directly in the browser.
The camera feed is processed locally without AI analysis or server-side handling, allowing you to read QR content quickly and privately.
If camera access is unavailable, you can upload an image containing a QR code
and decode it locally in the same way. Scanned results are displayed instantly
and can be copied with a single click, without saving any history or data.
All scanning and decoding operations are performed entirely on your device.
No images, camera streams, or decoded contents are uploaded to any server, making this tool suitable for secure and privacy-conscious use.
If the camera isn’t available, upload an image that contains a QR code to scan it locally.
Start the camera to begin scanning.
QR Code Reader
This QR code reader extracts the text or URL stored in a QR code from an image or camera input. It helps you inspect QR codes before opening links, verify printed materials, and check screenshots or design exports before publishing them.
When it helps
- Read QR codes from images: Decode PNG, JPEG, or screenshot files that contain QR codes.
- Verify campaign links: Confirm that a QR code points to the expected URL before printing.
- Check suspicious codes: Inspect the raw URL before opening it in a browser.
If scanning fails
QR codes can fail when the image is blurry, too small, low contrast, cropped, or missing quiet-zone margin. Try a sharper image, increase the displayed size, and make sure the whole QR code is visible.
Articles for this tool
How to Read a QR Code from an Image and Check the URL Before Opening It
Decode QR codes from images or screenshots, verify campaign links before printing, and inspect suspicious QR URLs safely.
Generating and Reading QR Codes: How They Work and How to Use Them
Explore the basics of QR codes, secure methods for generating and reading them, and practical use cases in development.
Recent Articles
curl Options Cheat Sheet: What -X, -H and -d Actually Do
A reference for the curl options you meet in real API work: why -d already implies POST, how -d differs from --data-raw, the @ prefix that silently reads a file, single vs double quotes, and why -k and -L deserve more caution than they usually get.
Converting Between JSON Schema and Zod: How required Maps to .optional()
Inside a two-way converter that turns JSON Schema into a Zod schema and Zod code back into JSON Schema. Covers the inverted defaults between required and .optional(), the constraint mapping table, and how the Zod side is parsed without executing any code.
SQL Clause Order Reference: Why WHERE Can't See Your SELECT Alias
The order you write SQL clauses is not the order the database runs them. A reference for the logical execution order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT), why aliases fail in WHERE, when to use WHERE vs HAVING, and the MySQL/PostgreSQL differences that bite.
Unified Diff Format Reference: Reading @@ Hunks in git diff Output
How to read the unified diff format git produces: what the four numbers in @@ -12,7 +12,9 @@ mean, why a one-character edit shows as a whole-line replacement, the whitespace and line-ending traps, \ No newline at end of file, combined @@@ diffs on merges, and rename detection via similarity index.
UTC to JST Reference: The 9-Hour Offset, Cheat Sheet & Timezone Pitfalls
Convert between UTC and JST (Japan Standard Time) with a cheat sheet. Covers what Z and +09:00 mean in ISO 8601, when JavaScript date parsing silently shifts by 9 hours, MySQL/PostgreSQL timezone behavior, and why GitHub Actions cron always runs in UTC.
CREATE TABLE Reference: MySQL vs PostgreSQL vs SQLite Types & Constraints
A cross-database CREATE TABLE (DDL) reference with cheat sheets for data types, auto-increment keys (AUTO_INCREMENT / IDENTITY / rowid), foreign key ON DELETE behavior, and the CHECK constraint that MySQL silently ignores.