Skip to main content
Online Tool

Read a barcode from an image

Drop a photo, screenshot or scanned label and we'll decode the barcode in your browser. No upload, no signup.

Result

Drop an image on the left and the decoded barcode value will appear here.

Supported image types

Drop in anything your browser can render as an image — phone photos, screenshots, exported labels or scanned documents.

  • PNG
  • JPG / JPEG
  • WEBP
  • GIF
  • BMP
  • HEIC (browser-dependent)

Supported barcode formats

The decoder handles the major 1D and 2D symbologies — retail, logistics, books and healthcare.

UPC-A
UPC-E
EAN-8
EAN-13
ITF
Code 39
Code 93
Code 128
Codabar
QR Code
Data Matrix
Aztec
PDF417

Troubleshooting blurry barcodes

Most failed decodes come down to the photo, not the decoder. A few quick fixes:

Fill the frame

Crop or zoom so the barcode takes up most of the image. Tiny barcodes lost in a wide shot are the #1 reason decoding fails.

Avoid blur and glare

Hold the camera steady, tap to focus on the barcode, and angle slightly to dodge reflections from plastic wrap or glossy labels.

Use even lighting

Bright, diffuse light beats a direct flash. Harsh shadows or a flash hotspot can break the contrast the decoder needs.

Keep it straight

1D barcodes (UPC, EAN, Code 128) decode best when the bars are roughly horizontal. Heavy rotation or perspective skew hurts accuracy.

Re-shoot wrinkled labels

Folded, curved or wrinkled labels deform the bars. Flatten the label or take a closer photo of just the barcode.

Try a different format

Screenshots from PDFs can lose detail. Export at full resolution, or open the original image instead of a chat thumbnail.

About reading a barcode from an image

This tool reads a barcode from an image — a photo, screenshot, scanned label or any image you can drop into the browser. The image is decoded locally with WebAssembly, so the file never leaves your device. It's a faster alternative to installing a desktop app when you only need to decode one or two images.

It supports the same retail, logistics and 2D barcode formats as our camera reader, so you can use it for UPC/EAN/GTIN labels, Code 128 cartons, QR codes and Data Matrix tags.

When to use it

  • Decoding a barcode someone emailed or messaged you.
  • Reading a barcode off a screenshot from a supplier portal.
  • Extracting the GTIN from a product photo before listing it online.
  • Recovering the value from a damaged label by photographing it under good light.
  • Working on a laptop without a webcam or scanner gun.
  • Batch-checking a few barcodes one image at a time.

How it works

  1. 1Step 1
    Drop or choose an image

    Drag a file into the dropzone, tap to pick from your phone, or use the file picker.

  2. 2Step 2
    Preview

    You'll see the image plus its filename and size so you know the right file was loaded.

  3. 3Step 3
    Auto-decode

    Decoding starts immediately — no upload step, nothing leaves the browser.

  4. 4Step 4
    Read the result

    The right-hand panel shows the decoded value and the detected barcode format.

  5. 5Step 5
    Copy or export

    Copy the value to the clipboard or download a small JSON record of the decode.

What to avoid

  • Heavily compressed JPEGs from messaging apps — edges get smeared.
  • Photos taken at an extreme angle — straighten the barcode first.
  • Images where the barcode is only a few pixels tall.
  • Photographs of a screen at an angle (moiré patterns).
  • Expecting a successful decode to confirm the product is genuine — it doesn't.

Tips & tricks

  • Crop tight to the barcode before uploading if your first attempt fails.
  • If the photo is dark, brighten it in your phone's editor and retry.
  • For 1D barcodes, rotate so the bars are vertical for the best chance.
  • Screenshots usually decode better than photographs of screens.
  • If you have multiple barcodes in one image, crop each one separately.

Frequently asked questions

Need a different tool?