BarcodeSheets

Read a barcode from an image

Drop in a photo, or point your camera at a barcode, and get the decoded format and text back instantly — every symbology this site can generate, decoded entirely on your device.

Drop a barcode photo here, or click to choose one

PNG, JPG, WebP, or GIF — or paste an image with Ctrl+V / Cmd+V. Decoded on this device; nothing is uploaded.

Unlimited — no caps SVG & print-res PNG free No account 100% in your browser

What this reader can decode

This page reads back every symbology the rest of BarcodeSheets can generate — Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, and GS1-128 — plus 2D formats like QR Code and Data Matrix, and a good deal more besides (Aztec, PDF417, Codabar, DataBar, and others) via the same open-source zxing-cpp decoder used by a lot of native scanning apps. If an image has more than one barcode in it, every one that decodes cleanly is listed, each with its format, its decoded text, and its own copy button — not just the first match.

How decoding works — entirely in your browser

The decoder is a WebAssembly build of zxing-cpp, loaded once from this site and run locally on whatever image you give it — a dropped file, a pasted screenshot, or a live camera frame. None of that ever touches a server: there's no upload step to wait on, no image stored anywhere, and camera mode grabs frames straight off the video feed into an in-memory canvas rather than recording or transmitting anything. Close the tab and it's gone, exactly like the barcode generator on this site never uploads what you type into it either.

Getting a clean scan from a photo

Most failed decodes come down to the same handful of fixable things: a blurry or out-of-focus shot, the barcode too small in frame for the decoder to resolve individual bars, glare or a shadow crossing the symbol, or the quiet zone — the blank margin required on each side — cropped out of the picture. Fill the frame with the barcode, use even lighting without a direct reflection off the surface, and hold the camera steady; a slightly imperfect angle is usually fine, but motion blur rarely is. Camera mode keeps scanning every quarter-second until it gets a clean read or you stop it, so small repositioning between attempts is often all it takes.

Decoding a number isn't the same as owning it

Reading a barcode back to its underlying digits or text is purely mechanical — it says nothing about whether that number is registered to anyone, valid for retail sale, or assigned at all. A UPC or EAN that scans successfully here could still be a duplicate, an unregistered placeholder, or someone else's real GTIN. If you're building labels for products you plan to sell, generate new codes with the bulk generator and get any GTIN you need to be unique properly issued through GS1 rather than assuming a number that scans is a number you're free to use.

Frequently asked questions

How can I read a barcode from a picture?

Upload the picture on this page — drag it into the dropzone, click to browse, or paste it straight from your clipboard — and it's decoded immediately, no account or install needed. The image is read entirely in your browser with a WebAssembly barcode decoder, so the picture itself never leaves your device.

Can I scan a barcode from a screenshot?

Yes — a screenshot is just another image file, and this reader doesn't care how a barcode photo was produced. Screen-captured barcodes decode a little more reliably than camera photos, in fact, since there's no focus, motion blur, or glare to fight; just make sure the barcode wasn't resized so small that its bars blur together.

Is there a free barcode reader online?

This one: unlimited decodes, no account, no watermark, no upload limit, free for personal and commercial use. It runs the same open-source zxing-cpp decoder (compiled to WebAssembly) that powers a lot of native scanning apps, just packaged as a page instead of an app-store install.

Why is my barcode not scanning?

Almost always one of: the photo is blurry or out of focus, the barcode is too small in frame (the decoder needs enough resolution per bar), there's glare or a shadow crossing the bars, or the quiet zone — the blank margin on each side — got cropped off. Retake the photo filling more of the frame with good, even light, and try again; it re-decodes instantly.

What barcode types can this reader decode?

Every symbology generated elsewhere on this site — Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, GS1-128 — plus 2D formats like QR Code and Data Matrix, and several more the underlying zxing-cpp decoder supports (Aztec, PDF417, Codabar, DataBar, and others). Multiple barcodes in one image are all listed, not just the first one found.

Is decoding a barcode the same as owning that number?

No. Decoding just reads back whatever digits or text were encoded into the bars — it doesn't check whether that GTIN/UPC is registered to you, valid for retail listing, or even a real assigned number at all. If you need a barcode number you're actually authorized to sell under, that comes from GS1 (or an authorized reseller), not from any decoder.