W3cubDocs

/Web APIs

BarcodeDetector

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The BarcodeDetector interface of the Barcode Detection API allows detection of linear and two dimensional barcodes in images.

Constructors

BarcodeDetector.BarcodeDetector() Experimental

Creates and returns a BarcodeDetector object, with optional barcodeDetectorOptions

Static methods

getSupportedFormats() Experimental

Returns a Promise which fulfills with an Array of supported barcode format types.

Instance methods

detect() Experimental

Returns a Promise which fulfills with an array of detectedBarcode objects with the following properties:

  • boundingBox: A DOMRectReadOnly, which returns the dimensions of a rectangle representing the extent of a detected barcode, aligned with the image.
  • cornerPoints: The x and y co-ordinates of the four corner points of the detected barcode relative to the image, starting with the top left and working clockwise. This may not be square due to perspective distortions within the image.
  • format: The detected barcode format. (For a full list of formats see the [landing page])
  • rawValue: A string decoded from the barcode data.

Examples

Creating A Detector

This example creates a new barcode detector object, with specified supported formats and tests for browser compatibility.

js

// create new detector
const barcodeDetector = new BarcodeDetector({
  formats: ["code_39", "codabar", "ean_13"],
});

// check compatibility
if (barcodeDetector) {
  console.log("Barcode Detector supported!");
} else {
  console.log("Barcode Detector is not supported by this browser.");
}

Getting Supported Formats

The following example calls the getSupportFormat() static method and logs the results to the console.

js

// check supported types
BarcodeDetector.getSupportedFormats().then((supportedFormats) => {
  supportedFormats.forEach((format) => console.log(format));
});

Detect Barcodes

This example uses the detect() method to detect the barcodes within the given image. These are iterated over and the barcode data is logged to the console.

js

barcodeDetector
  .detect(imageEl)
  .then((barcodes) => {
    barcodes.forEach((barcode) => console.log(barcode.rawValue));
  })
  .catch((err) => {
    console.log(err);
  });

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
BarcodeDetector
88Supported on Chrome OS and macOS only.
83–88Supported on macOS only.
83Supported on macOS only.
No No
69Supported on macOS only.
No 83 83 No 59 No 13.0
BarcodeDetector
88Supported on Chrome OS and macOS only.
83–88Supported on macOS only.
83Supported on macOS only.
No No
69Supported on macOS only.
No 83 83 No 59 No 13.0
detect
88Supported on Chrome OS and macOS only.
83–88Supported on macOS only.
83Supported on macOS only.
No No
69Supported on macOS only.
No 83 83 No 59 No 13.0
getSupportedFormats_static
88Supported on Chrome OS and macOS only.
83–88Supported on macOS only.
83Supported on macOS only.
No No
69Supported on macOS only.
No 83 83 No 59 No 13.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/BarcodeDetector