How to Scan a Barcode From an Image or Camera

Use an uploaded image when you already have a file, or use the camera when the physical barcode is in front of you. In either case, the decoder still needs a supported format, clear modules or bars, sufficient contrast, and an image that the browser can read.

Choose the appropriate input

Use the image scanner when

  • You have a screenshot, exported label, product photo, or document image.
  • You need time to rotate, zoom, or inspect the selected image.
  • The camera cannot focus reliably on the physical symbol.
Open image scanner

Use the camera scanner when

  • The barcode is physically available and the device has a usable camera.
  • The page is running in a secure browser context and camera permission can be granted.
  • You can adjust lighting, angle, and distance while viewing the live preview.
Open camera scanner

Scan from an image

  1. Select a supported file

    Choose one JPG, PNG, WebP, or SVG image no larger than 10 MB. Corrupt files and unsupported image types produce an error instead of a fabricated decode.

  2. Keep the complete symbol visible

    Include all bars or modules plus the surrounding quiet area. Tight cropping can remove boundaries that the decoder needs.

  3. Review the result

    The browser-side engine returns the decoded value and reported format when it finds a supported symbol. A successful decode confirms what the image represents mathematically, not the truth of the associated product or destination.

Scan with a camera

  1. Grant camera permission

    The browser must expose a camera stream to the page. If permission is denied, revoked, blocked by the browser context, or another application is using the device, the camera tool reports an error.

  2. Fill the frame without losing focus

    Move closer or farther until the bars or modules are sharp. The useful distance depends on the lens, focus mode, symbol size, and lighting; there is no single distance that works for every device.

  3. Pause and inspect

    The shared camera session pauses after a fresh result so the value can be reviewed. Resume the scanner when you are ready for another symbol.

Improve focus, lighting, and framing

Focus

Hold the device steady and wait for the camera to settle. On devices that support it, tapping the preview may help the browser or operating system refocus.

Glare

Move the light source, tilt glossy packaging slightly, or adjust screen brightness so reflections do not erase bars, modules, or finder patterns.

Contrast

Use an image where the symbol is clearly separated from its background. Faded printing, shadows, and compression artifacts can merge adjacent elements.

Perspective

Avoid extreme angles and curved distortion. A moderate change in angle may reduce glare, but excessive perspective makes module geometry harder to recover.

History, copying, and batch export

Successful scans can be added to the browser-local history. When localStorage is available, history can remain after a reload until browser data is cleared; private browsing or storage restrictions may prevent persistence. The current scanner components do not send selected images or decoded values to an image-upload endpoint.

For multiple items, use the batch scanner and CSV export. It keeps a separate browser-local table with quantities, notes, sources, and timestamps.

Scan a barcode on your phone

Phones can scan without this site too, but the built-in camera usually only reads QR codes. For product barcodes and step-by-step instructions, see barcode scan on iPhone or barcode scan on Android.

Treat decoded content as untrusted input

A barcode may contain a misleading website, message, identifier, or contact. Review the decoded value before opening a destination or using it in another system. For QR content, use the dedicated QR code scanner, which requires confirmation before supported external actions.

When a scan still fails

Use the troubleshooting guide to check damage, quiet zones, unsupported formats, image quality, camera permissions, and other common failure points.

Troubleshoot a failed scan