Inspect
QR Code Decoder
Upload a PNG, JPEG, or WebP that contains a QR code. The recovered payload is shown as text. QRToolMage never navigates to a decoded URL.
The payload is encoded or decoded in your browser. QRToolMage does not upload it, store it, or send it to analytics.
PNG, JPEG, or WebP. Max 8 MB and 4096 px. The file stays in this browser.
Choose an image.
No file
How it works
The image is drawn to an offscreen canvas and decoded with an independent reader. Output is escaped text. HTML and scripts in the payload are never executed.
Input and output
Input is one image file. Output is payload text, a type label, and warnings. No navigation.
Examples
Printed URL
A photo of a poster QR should decode to an https URL shown as text.
Unsafe scheme
A javascript: payload is labeled unsafe and still not opened.
How to use this tool
- Choose a PNG, JPEG, or WebP with the file picker.
- Wait for the payload text and type label.
- Copy the text if you need it. Do not assume a URL is safe.
- Remove the file to reset.
Limitations
- Blurry, skewed, or very small photos can fail.
- Non-QR images return a clear miss, not a guess.
- 1D barcodes are out of scope on this page.
- Image size is capped. This is not an unlimited decoder.
Questions
Will this open the website in the QR code?
No. URLs are shown as text. You decide whether to copy them. javascript: and data: payloads are flagged as unsafe.
Is the image uploaded?
No. Decoding runs in your browser. The file is not sent to a server.
Can I use the camera?
Not on this page. Launch decoding is image upload only. A live camera scanner is a later, separate workflow.
Related tools
Static QR
QR Code Generator
Encode a URL or text into a static QR symbol. The destination is stored in the pixels. There is no later edit, scan count, or hosted redirect.
Structured payload
Wi-Fi QR Code
Share a network without typing the password on every guest phone. The WIFI:T:S:P:H: string is built locally and reset clears the password.
Structured payload
vCard QR Code
Hand someone a code they can save as a contact. Fields are written as vCard 3.0, not as a free-text blob.