条形码检测器
注意:此功能在Web Workers中可用。
条形码检测 API的BarcodeDetector
接口允许检测图像中的线性条形码和二维条形码。
构造函数
BarcodeDetector.BarcodeDetector()
实验性-
创建并返回一个
BarcodeDetector
对象,并具有可选的BarcodeDetectorOptions
。
静态方法
实例方法
detect()
实验性-
返回一个
Promise
,该承诺将以包含以下属性的DetectedBarcode
对象数组形式完成boundingBox
: 一个DOMRectReadOnly
,它返回一个矩形的尺寸,该矩形表示检测到的条形码的范围,与图像对齐。cornerPoints
: 检测到的条形码的四个角点的 x 和 y 坐标,相对于图像,从左上角开始,顺时针排列。由于图像中的透视失真,这可能不是正方形。format
: 检测到的条形码格式。(有关格式的完整列表,请参阅支持的条形码格式)列表。rawValue
: 从条形码数据解码的字符串。
示例
创建检测器
此示例创建一个新的条形码检测器对象,并指定支持的格式,并测试浏览器兼容性。
js
// check compatibility
if (!("BarcodeDetector" in globalThis)) {
console.log("Barcode Detector is not supported by this browser.");
} else {
console.log("Barcode Detector supported!");
// create new detector
const barcodeDetector = new BarcodeDetector({
formats: ["code_39", "codabar", "ean_13"],
});
}
获取支持的格式
以下示例调用 getSupportFormat()
静态方法并将结果记录到控制台。
js
// check supported types
BarcodeDetector.getSupportedFormats().then((supportedFormats) => {
supportedFormats.forEach((format) => console.log(format));
});
检测条形码
此示例使用 detect()
方法检测给定图像中的条形码。这些条形码将被迭代,并且条形码数据将被记录到控制台。
js
barcodeDetector
.detect(imageEl)
.then((barcodes) => {
barcodes.forEach((barcode) => console.log(barcode.rawValue));
})
.catch((err) => {
console.log(err);
});
规范
规范 |
---|
图像中的加速形状检测 # 条形码检测 API |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。