BarcodeDetector:detect() 方法
注意:此功能在 Web Workers 中可用。
BarcodeDetector 介面的 detect() 方法返回一個 Promise,該 Promise 會解析為一個 Array,其中包含在影像中檢測到的條形碼。
語法
detect(imageBitmapSource)
引數
imageBitmapSource-
作為引數接收一個影像源。它可以是
HTMLImageElement、SVGImageElement、HTMLVideoElement、HTMLCanvasElement、ImageBitmap、OffscreenCanvas、VideoFrame、型別為 image 的Blob或ImageData物件。
返回值
返回一個 Promise,該 Promise 會解析為一個 DetectedBarcode 物件陣列,其中包含以下屬性
boundingBox-
一個
DOMRectReadOnly物件,返回一個表示檢測到的條形碼範圍的矩形尺寸,該矩形與影像對齊。 cornerPoints-
檢測到的條形碼相對於影像的四個角點的 x 和 y 座標,從左上角開始順時針排列。由於影像中的透視失真,這可能不是正方形。
格式(format)-
檢測到的條形碼格式。(完整格式列表請參閱 支援的條形碼格式)。
rawValue-
從條形碼資料解碼出的字串。
異常
TypeError-
如果未指定引數或
type不是ImageBitmapSource的型別,則丟擲異常。 SecurityErrorDOMException-
如果
imageBitmapSource具有 origin 屬性,並且與文件的 origin 不一致,或者imageBitmapSource是一個HTMLCanvasElement且其 origin-clean 標誌設定為false,則丟擲異常。 InvalidStateErrorDOMException-
如果
imageBitmapSource是一個HTMLImageElement且尚未完全解碼或解碼失敗,或者是一個HTMLVideoElement且其readyState為HAVE_NOTHING或HAVE_METADATA,則丟擲異常。
示例
此示例使用 detect() 方法檢測給定影像中的條形碼。然後遍歷這些條形碼,並將條形碼資料記錄到控制檯。
barcodeDetector
.detect(imageEl)
.then((barcodes) => {
barcodes.forEach((barcode) => console.log(barcode.rawValue));
})
.catch((err) => {
console.error(err);
});
規範
| 規範 |
|---|
| 影像中的加速形狀檢測 # dom-barcodedetector-detect |
瀏覽器相容性
載入中…