files/en-us/web/api/barcodedetector/detect/index.md
{{securecontext_header}}{{APIRef("Barcode Detector API")}}{{AvailableInWorkers}}{{SeeCompatTable}}
The detect() method of the
{{domxref("BarcodeDetector")}} interface returns a {{jsxref('Promise')}} which fulfills
with an {{jsxref('Array')}} of detected barcodes within an image.
detect(imageBitmapSource)
imageBitmapSource
Returns a {{jsxref('Promise')}} which fulfills with an array of
DetectedBarcode objects with the following properties:
boundingBox
cornerPoints
format
rawValue
type is not that of an ImageBitmapSource.SecurityError {{domxref("DOMException")}}
imageBitmapSource has an origin and is not the same as the document's origin, or if the imageBitmapSource is a {{domxref('HTMLCanvasElement')}} and its origin-clean flag is set to false.InvalidStateError {{domxref("DOMException")}}
imageBitmapSource is an {{domxref('HTMLImageElement')}} and is not fully decoded or decoding failed, or is an {{domxref('HTMLVideoElement')}} and its {{domxref('HTMLMediaElement.readyState', 'readyState')}} is HAVE_NOTHING or HAVE_METADATA.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.
barcodeDetector
.detect(imageEl)
.then((barcodes) => {
barcodes.forEach((barcode) => console.log(barcode.rawValue));
})
.catch((err) => {
console.error(err);
});
{{Specifications}}
{{Compat}}