条形码检测器:detect() 方法
注意: 此功能在 Web 工作线程 中可用。
detect()
方法是 BarcodeDetector
接口的方法,它返回一个 Promise
,该 Promise 将使用 Array
来实现,该 Array 包含图像中检测到的条形码。
语法
detect(imageBitmapSource)
参数
imageBitmapSource
-
接收图像源作为参数。这可以是
HTMLImageElement
、SVGImageElement
、HTMLVideoElement
、HTMLCanvasElement
、ImageBitmap
、OffscreenCanvas
、VideoFrame
、类型为图像的Blob
或ImageData
对象。
返回值
返回一个 Promise
,该 Promise 将使用 DetectedBarcode
对象数组来实现,该数组具有以下属性
boundingBox
-
一个
DOMRectReadOnly
,它返回表示检测到的条形码范围的矩形的尺寸,与图像对齐。 cornerPoints
-
检测到的条形码的四个角点相对于图像的 x 和 y 坐标,从左上角开始,顺时针方向排列。由于图像中的透视失真,这可能不是正方形。
format
-
检测到的条形码格式。(有关格式的完整列表,请参阅 支持的条形码格式)。
rawValue
-
从条形码数据解码的字符串。
异常
TypeError
-
如果未指定参数或
type
不是ImageBitmapSource
的类型,则抛出。 SecurityError
DOMException
-
如果
imageBitmapSource
具有来源并且与文档的来源不同,或者如果imageBitmapSource
是HTMLCanvasElement
并且其 origin-clean 标志设置为false
,则抛出。 InvalidStateError
DOMException
-
如果
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 |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。