BarcodeDetector

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

BarcodeDetector 介面(屬於 Barcode Detection API)允許在影像中檢測線性條形碼和二維條形碼。

建構函式

BarcodeDetector.BarcodeDetector() 實驗性

建立一個並返回一個 BarcodeDetector 物件,可以帶有可選的 BarcodeDetectorOptions

靜態方法

getSupportedFormats() 實驗性

返回一個 Promise,該 Promise 會 fulfilled 一個包含支援的 條形碼格式型別Array

例項方法

detect() 實驗性

返回一個 Promise,該 Promise 會 fulfilled 一個包含 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);
  });

規範

規範
影像中的加速形狀檢測
# barcode-detection-api

瀏覽器相容性

另見