tuliq
Runs in your browser

QR Code Decoder

Upload a photo or screenshot containing a QR code to decode it instantly using jsQR — a dedicated QR decoding library. The detected code's boundary is outlined directly on the image, and the decoded text is copyable, with a direct "open link" shortcut when it's a URL. Unlike most online QR scanners, the image is processed entirely in your browser and never uploaded to a server.

About this tool

This tool decodes a QR code from an uploaded image entirely in your browser, using jsQR — a dedicated QR decoding library, not a generic barcode scanner repurposed for the job. Decoding works directly against the image's raw pixel data: the QR code doesn't need to be perfectly cropped or centered, just visible and reasonably legible in the photo. On a successful decode, the QR code's actual boundary is outlined in red directly on the image, which is a useful sanity check when a photo contains more than one code or extra visual clutter. A decoded value that looks like a URL gets an explicit "open" option, rather than the tool assuming every decoded string is safe to navigate to automatically. This is genuinely more private than most online QR scanners, which upload your photo to decode it server-side — here, the image is processed locally and never transmitted anywhere.

What you can do

  • Upload a photo or screenshot containing a QR code and decode it instantly
  • The detected QR code is outlined directly on the image
  • Copy the decoded text, or open it directly if it's a link
  • Nothing is uploaded — the image never leaves your device

How to use

Step 1

Upload an image

A photo, screenshot, or exported image containing a QR code.

Step 2

It's scanned automatically

No button to press — decoding happens the moment the image loads.

Step 3

Copy or open the result

Copy the decoded text, or open it directly if it looks like a URL.

Example

A photo containing a QR code encoding:

Decoded text

https://tuliq.app

decodes to that text instantly, with an "Open link →" shortcut shown automatically since it's recognized as a URL.

How your data is handled

This tool is labeled 🟢 Browser: your image is drawn to an off-screen canvas and scanned directly in your browser using the jsQR library — nothing is uploaded to a server, and nothing about it is retained once you leave the page.

Frequently asked questions

Why didn't it find a QR code in my image?+

The most common reasons are the QR code being too small, blurry, or cut off in the photo, or too little quiet space (plain margin) around it. Cropping closer to just the code itself, or using a sharper source image, usually helps.

What does the red outline on the image mean?+

It marks the exact boundary of the QR code jsQR detected and decoded — useful confirmation that it found the code you intended, especially in a photo with more than one QR code or visual clutter nearby.

Why does it offer to open some results as a link but not others?+

A decoded value is only offered as an "Open link" shortcut when it starts with http:// or https:// — plain text, Wi-Fi credentials, or other QR payload types are shown as text only, since automatically treating every decoded string as a safe URL to navigate to isn't assumed.

Is this safer than other online QR scanners?+

Most web-based QR scanners upload your photo to a server to decode it. This tool decodes entirely in your browser using the jsQR library — the image is processed locally and never transmitted anywhere.

Is my image uploaded anywhere?+

No — it's drawn to an off-screen canvas and scanned directly in your browser. Nothing here ever leaves your device.

Related tools