BarcodeDetector: phương thức detect()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Phương thức detect() của giao diện BarcodeDetector trả về một Promise được hoàn thành với một Array các mã vạch được phát hiện trong một ảnh.

Cú pháp

js
detect(imageBitmapSource)

Tham số

imageBitmapSource

Nhận một nguồn ảnh làm tham số. Đây có thể là một HTMLImageElement, một SVGImageElement, một HTMLVideoElement, một HTMLCanvasElement, một ImageBitmap, một OffscreenCanvas, một VideoFrame, một Blob kiểu ảnh hoặc một đối tượng ImageData.

Giá trị trả về

Trả về một Promise được hoàn thành với một mảng các đối tượng DetectedBarcode có các thuộc tính sau:

boundingBox

Một DOMRectReadOnly, trả về kích thước của một hình chữ nhật biểu diễn phạm vi của mã vạch được phát hiện, được căn theo ảnh.

cornerPoints

Tọa độ x và y của bốn điểm góc của mã vạch được phát hiện tương đối với ảnh, bắt đầu từ góc trên bên trái và đi theo chiều kim đồng hồ. Hình này có thể không vuông do biến dạng phối cảnh trong ảnh.

format

Định dạng mã vạch được phát hiện. (Để xem danh sách đầy đủ các định dạng, hãy xem định dạng mã vạch được hỗ trợ.)

rawValue

Một chuỗi được giải mã từ dữ liệu mã vạch.

Ngoại lệ

TypeError

Được ném ra nếu không có tham số nào được chỉ định hoặc type không phải là một ImageBitmapSource.

SecurityError DOMException

Được ném ra nếu imageBitmapSource có một origin và không trùng với origin của tài liệu, hoặc nếu imageBitmapSource là một HTMLCanvasElement và cờ origin-clean của nó được đặt thành false.

InvalidStateError DOMException

Được ném ra nếu imageBitmapSource là một HTMLImageElement và chưa được giải mã hoàn toàn hoặc việc giải mã thất bại, hoặc là một HTMLVideoElementreadyState của nó là HAVE_NOTHING hoặc HAVE_METADATA.

Ví dụ

Ví dụ này dùng phương thức detect() để phát hiện các mã vạch trong ảnh đã cho. Các mã vạch này sau đó được lặp qua và dữ liệu mã vạch được ghi ra bảng điều khiển.

js
barcodeDetector
  .detect(imageEl)
  .then((barcodes) => {
    barcodes.forEach((barcode) => console.log(barcode.rawValue));
  })
  .catch((err) => {
    console.error(err);
  });

Thông số kỹ thuật

Specification
Accelerated Shape Detection in Images
# dom-barcodedetector-detect

Tương thích trình duyệt