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 |
浏览器兼容性
加载中…