API распознавания штрих-кодов
Ограниченная доступность
Эта функция не относится к Baseline, так как не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Экспериментальная: Это экспериментальная технология
Перед использованием в рабочей среде внимательно проверьте таблицу совместимости браузеров.
API распознавания штрих-кодов определяет линейные и двумерные штрих-коды на изображениях.
Основные понятия и использование
Поддержка распознавания штрих-кодов в веб-приложениях открывает широкий спектр вариантов использования через поддерживаемые форматы штрих-кодов. QR-коды могут использоваться для онлайн-платежей, навигации по сайтам или установления социальных связей, коды Aztec могут использоваться для сканирования посадочных талонов, а приложения для покупок могут использовать штрих-коды EAN или UPC для сравнения цен на физические товары.
Распознавание выполняется с помощью метода detect(), который принимает объект изображения; это может быть один из следующих объектов: HTMLImageElement, SVGImageElement, HTMLVideoElement, HTMLCanvasElement, ImageBitmap, OffscreenCanvas, VideoFrame, Blob или ImageData. В конструктор BarcodeDetector можно передать необязательные параметры, чтобы указать, какие форматы штрих-кодов следует распознавать.
Поддерживаемые форматы штрих-кодов
API распознавания штрих-кодов поддерживает следующие форматы штрих-кодов:
| Формат | Описание | Изображение |
|---|---|---|
| aztec | Квадратный двумерный матричный код, соответствующий стандарту iso24778, с квадратным центральным кругом, напоминающим ацтекскую пирамиду. Не требует окружающего пустого поля. | |
| code_128 | Линейный (одномерный), двунаправленно декодируемый, самопроверяемый штрих-код, соответствующий стандарту iso15417, способный кодировать все 128 символов ASCII (отсюда и название). | |
| code_39 | Линейный (одномерный), самопроверяемый штрих-код, соответствующий стандарту iso16388. Это дискретный и переменной длины тип штрих-кода. | |
| code_93 | Линейная, непрерывная символика с переменной длиной, соответствующая стандарту bc5. Предлагает более высокую плотность информации, чем Code 128 и визуально похожий Code 39. Code 93 используется в основном почтой Канады для кодирования дополнительной информации о доставке. | |
| codabar | Линейный штрих-код, представляющий символы от 0 до 9, A-D и символы - . $ / + | |
| data_matrix | Двумерный штрих-код, независимый от ориентации, составленный из черных и белых модулей, расположенных в квадратной или прямоугольной форме, соответствующий стандарту iso16022. | |
| ean_13 | Линейный штрих-код, основанный на стандарте UPC-A и определенный в iso15420. | |
| ean_8 | Линейный штрих-код, определенный в iso15420 и производный от EAN-13. | |
| itf | Непрерывный, самопроверяемый, двунаправленно декодируемый штрих-код. Он всегда кодирует 14 цифр. | |
| pdf417 | Двумерный формат непрерывной штрих-кодовой символики с несколькими строками и столбцами. Он двунаправленно декодируется и использует стандарт iso15438. | |
| qr_code | Двумерный штрих-код, использующий стандарт iso18004. Кодируемая информация может быть текстом, URL или другими данными. | |
| upc_a | Один из самых распространенных типов линейных штрих-кодов, широко применяемых в розничной торговле в США. Определенный в iso15420, он представляет цифры полосками черных и белых полос и пробелов, каждая цифра связана с уникальным шаблоном из 2 полос и 2 пробелов, ширина которых переменная. UPC-A может кодировать 12 цифр, уникально присвоенных каждому торговому предмету, и технически является подмножеством EAN-13 (коды UPC-A представлены в EAN-13 с первым символом, установленным в 0). | |
| upc_e | Вариант UPC-A, определенный в iso15420, сжатый за счет удаления ненужных нулей для более компактного штрих-кода. | |
| unknown | Это значение используется платформой для обозначения того, что она не знает или не определяет, какой формат штрих-кода распознается или поддерживается. |
Вы можете проверить форматы, поддерживаемые пользовательским агентом, с помощью метода getSupportedFormats().
Интерфейсы
-
BarcodeDetectorЭкспериментальная -
Интерфейс
BarcodeDetectorAPI распознавания штрих-кодов позволяет распознавать линейные и двумерные штрих-коды на изображениях.
Примеры
Создание детектора
Этот пример проверяет совместимость с браузером и создает новый объект детектора штрих-кодов с указанными поддерживаемыми форматами.
// 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"],
});
}
Получение поддерживаемых форматов
Следующий пример вызывает метод getSupportedFormats() и регистрирует результаты в консоли.
// check supported types
BarcodeDetector.getSupportedFormats().then((supportedFormats) => {
supportedFormats.forEach((format) => console.log(format));
});
Распознавание штрих-кодов
В этом примере используется метод detect() для распознавания штрих-кодов на заданном изображении. Эти штрих-коды перебираются, а данные штрих-кода регистрируются в консоли.
barcodeDetector
.detect(imageEl)
.then((barcodes) => {
barcodes.forEach((barcode) => console.log(barcode.rawValue));
})
.catch((err) => {
console.log(err);
});
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
BarcodeDetector |
88Поддерживается только на ChromeOS и macOS.83–88Поддерживается только на macOS. |
83Поддерживается только на macOS. |
Нет | 69Поддерживается только на macOS. |
17 | 83 | Нет | 59 | 17 | 13.0 | 83 |
Barcode_Detection_API |
88["Поддерживается только на ChromeOS и macOS.", "До Chrome 113, на macOS Ventura (13) и выше, этот интерфейс молчаливо завершался ошибкой. См. баг 40245611."]83–88Поддерживается только на macOS. |
83["Поддерживается только на macOS.", "До Chrome 113, на macOS Ventura (13) и выше, этот интерфейс молчаливо завершался ошибкой. См. баг 40245611."] |
Нет | 69["Поддерживается только на macOS.", "До Chrome 113, на macOS Ventura (13) и выше, этот интерфейс молчаливо завершался ошибкой. См. баг 40245611."] |
17 | 83 | Нет | 59 | 17 | 13.0 | 83 |
detect |
88Поддерживается только на ChromeOS и macOS.83–88Поддерживается только на macOS. |
83Поддерживается только на macOS. |
Нет | 69Поддерживается только на macOS. |
17 | 83 | Нет | 59 | 17 | 13.0 | 83 |
getSupportedFormats_static |
88Поддерживается только на ChromeOS и macOS.83–88Поддерживается только на macOS. |
83Поддерживается только на macOS. |
Нет | 69Поддерживается только на macOS. |
17 | 83 | Нет | 59 | 17 | 13.0 | 83 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Barcode_Detection_API