Reading a code you were sent, not one in front of you
Phone cameras handle codes that exist in the physical world. They are much less help when the code arrives as a screenshot in a chat, an attachment in an email, or a frame you cropped out of a video, because pointing one screen at another is awkward and often fails.
That is the gap this fills. You hand it the image file itself, and it reads the pixels directly. No camera, no permission prompt, no second device balancing against a monitor.
It also changes the safety calculation. A phone that scans a printed code usually offers to open the destination immediately, which is precisely what makes stickers slapped over parking meter codes effective. Decoding a saved image gives you the raw string first, in plain text, with nothing offering to act on it.
Decoding a folder of screenshots at once
- Drop your images onto the box, or use Choose files. Several at a time is fine; the accepted list is JPG, JPEG, PNG, WebP, GIF and BMP.
- Anything with a different extension is filtered out before processing begins, so a stray PDF in the selection is simply not queued.
- Click QR Code Reader from Image. The progress bar advances one step per image.
- Each image produces its own download link, named after the source file with a QR suffix, so photo.jpg comes back as photo-qr-code.txt.
- Open a file to read the decoded value. When exactly one code was found, the file contains nothing but that value, with no header or label wrapped around it.
- Process another clears the queue for the next batch.
The one-value-per-file shape is intentional. A file whose entire content is a URL can be opened, selected and copied in a single motion, and pastes cleanly into a browser bar or a script.
Two decoders, and why both are there
Chromium based browsers ship a native barcode detector built into the browser itself. Where it exists, it is tried first: it is fast, it is maintained by the browser vendor, and it returns every code it finds in one image rather than just the first.
Firefox and Safari have no such API. So a pure JavaScript decoder is bundled with the page and used whenever the native one is missing, refuses the requested format, or runs and finds nothing at all. That last case is the interesting one, because it is not merely an availability check. The two decoders have genuinely different failure modes, and a low-contrast or slightly damaged screenshot that one gives up on can still be readable by the other. Trying the fallback even after a successful-but-empty native run costs a fraction of a second and occasionally rescues an image.
The practical consequence: multi-code images work on Chrome and Edge, and give you one value at a time elsewhere. When two or more codes are found, the file becomes a short numbered list instead of a bare value.
Nothing here treats an empty result as a crash
Most file tools on this site abort the whole run when something goes wrong with one file, and show a single generic apology. This one deliberately does not, because its most common non-result is not an error at all.
An image with no code in it is an everyday outcome. So is a batch where six screenshots contain codes and two do not. Both are written into the result file as clear sentences rather than being thrown, which keeps the rest of the batch intact and tells you exactly which images came up short. Even a file the browser cannot open as an image produces its own labelled result rather than taking the run down with it.
When the code is not the thing you actually need
Some payloads are only half useful as raw text. A one-time password code encodes a secret in a URI that an authenticator app expects to consume; if you are moving accounts between devices, TOTP Generator will take that secret and produce the six-digit codes directly.
Decoded values are often escaped or encoded. If yours is full of percent signs, URL Decode turns it back into readable text, and Base64 Decode handles the other common wrapping. For a boarding pass or ticket that arrived as a wallet file rather than an image, PKPASS to PDF converts it into something printable with the barcode drawn on the page.
To go the other way and make a code rather than read one, QR Code Generator is next door. Everything else is on the generators hub.