Декодер Штрих-кодов
Декодируйте штрих-коды из изображений онлайн. Загружайте, перетаскивайте или вставляйте изображения. Всё в браузере.
Перетащите изображение штрих-кода сюда
Поддерживает PNG, JPG, GIF, BMP, WebP и другие распространённые форматы изображений
Вы также можете использовать Ctrl+V для вставки изображения из буфера обмена
Что такое Декодер Штрих-кодов?
Декодер штрих-кодов — это инструмент, который считывает и декодирует изображения штрих-кодов, восстанавливая их исходное содержимое. Загрузив изображение со штрих-кодом, инструмент автоматически распознаёт и декодирует хранящуюся числовую или текстовую информацию. Поддерживает распространённые форматы одномерных штрих-кодов, включая CODE128, EAN-13, EAN-8, CODE39, UPC и другие. Инструмент работает полностью в браузере — ваши изображения никогда не покидают ваше устройство. При декодировании barcode сильно влияют резкость изображения, contrast, rotation, crop и тип кода. Распознанное значение для inventory, tickets, shipping или product data стоит сравнивать с ожидаемой длиной и check digit. Инструмент помогает быстро читать фото и screenshots, но не заменяет профессиональные scanner devices в потоках с большим объемом.
Как использовать
Как использовать
- Нажмите на область загрузки, чтобы выбрать изображение штрих-кода, или перетащите изображение в эту область
- Также можно использовать Ctrl+V (Cmd+V на Mac), чтобы вставить изображение из буфера обмена
- Инструмент автоматически распознает и декодирует содержимое штрих-кода
- Результат декодирования появится ниже с указанием формата штрих-кода и типа содержимого
- Нажмите кнопку «Скопировать результат», чтобы скопировать декодированное содержимое, или откройте URL напрямую, если это ссылка
Советы по декодированию
- Используйте чёткое контрастное изображение, на котором виден весь штрих-код; размытие, блики, обрезка и сильное искажение перспективы снижают точность распознавания.
- Если декодирован URL или код товара, проверьте адресата или идентификатор перед использованием в рабочих записях.
Применение
Технический принцип
Одномерный штрих-код (UPC, EAN, Code 39, Code 128, ITF, Codabar) — это последовательность параллельных полос и пробелов, ширина которых кодирует цифры, буквы или полный диапазон ASCII. Двумерный штрих-код (QR Code, Data Matrix, PDF417, Aztec) представляет собой двумерный паттерн модулей (ячеек), расположенных в зоне тишины, обычно с тремя паттернами обнаружения положения в углах для определения ориентации. Декодирование штрих-кода — это обратный процесс: изображение → предобработка → обнаружение символа → измерение ширин полос и пробелов (или сэмплирование двумерной сетки) → поиск в таблице кодирования → применение контрольной суммы для проверки результата. Конвейер обработки изображений играет ключевую роль. Исходное изображение проходит через преобразование в градации серого (яркость = 0,299 R + 0,587 G + 0,114 B, весовые коэффициенты Rec. 601), затем глобальную или адаптивную пороговую обработку (метод Оцу выбирает порог, максимизирующий межклассовую дисперсию, что работает для большинства хорошо освещённых сканов; адаптивный порог Сауволы лучше справляется с неравномерным освещением). Обнаружение границ (ядро Собеля: 3x3 Gx и Gy) определяет вертикальные переходы полос; преобразование Хафа по этим линиям даёт ориентацию; анализ связанных компонент находит ограничивающий прямоугольник символа. Зона тишины (обязательный пустой отступ вокруг символа, 10x X-размера для QR Code, 9x ширины полосы для Code 128) проверяется до того, как символ будет принят как действительный кандидат. Для одномерных кодов декодер измеряет X-размер (ширину самой узкой полосы, единичную длину) и считывает ширины полос и пробелов как кратные X. Символ Code 39 состоит из 9 полос + 9 пробелов (один из которых — межсимвольный интервал); 3 из 9 элементов широкие (представляют 1) и 6 узкие (представляют 0). Символ Code 128 состоит из 11 модулей: стартовый паттерн, 6 закодированных полос/пробелов и стоповый паттерн. Таким образом, каждый символ занимает 11 модулей; 11 x количество символов + 13 (для старта + стопа + контрольной суммы + зоны тишины) даёт ширину символа. Code 128 имеет три набора кодирования: A (заглавные + управление), B (заглавные + строчные), C (пары цифр 00-99) — коды переключения наборов позволяют кодировщику выбирать наиболее эффективный набор для каждой подстроки. Для двумерных кодов алгоритм отличается. QR Code использует коррекцию ошибок Рида-Соломона (уровень EC L/M/Q/H добавляет 7%, 15%, 25%, 30% избыточности) и настраиваемый паттерн маскирования (один из 8; кодировщик выбирает тот, который минимизирует штрафной балл). После маскирования битовый поток размещается на квадратной сетке от 21x21 (версия 1) до 177x177 (версия 40) модулей; три паттерна обнаружения 7x7 в углах и паттерны выравнивания 5x5 на внутренних углах обеспечивают ориентацию и масштаб. Data Matrix использует аналогичную компоновку с L-образной сплошной границей с двух сторон и чередующимися тёмными/светлыми элементами с двух других. PDF417 — это линейный код (17 модулей в ширину, до 90 строк), используемый на водительских правах США и посадочных талонах авиалиний. Данная страница использует библиотеку ZXing (Zebra Crossing) — многоплатформенный декодер с открытым исходным кодом (Apache-2.0), изначально из проекта Google ZXing. ZXing выполняет полный конвейер (обнаружение → предобработка → декодирование) и последовательно пробует каждый известный формат. Он поддерживает UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 93, Code 128, ITF, Codabar, QR Code, Data Matrix, PDF417 и Aztec. Для двумерных кодов при хорошем освещениипроцент успешного декодирования составляет ~99% на фотографии 1080p; для одномерных кодов она ниже (~85-95%), поскольку перспектива, размытие и блики искажают ширину полос. Этот инструмент принимает только изображения (загрузка файла, перетаскивание или вставка из буфера обмена) и не предоставляет сканирование с камеры в реальном времени. Контрольные суммы имеют значение. UPC/EAN используют одну контрольную цифру по модулю 10 (сумма цифр на нечётных позициях x 3 + сумма цифр на чётных позициях, по модулю 10, вычитается из 10). Code 128 использует контрольный символ по модулю 103. Code 39 не требует контрольной цифры, но контрольная сумма mod-43 рекомендуется для логистики. QR Code использует коррекцию ошибок Рида-Соломона; если декодер EC обнаруживает больше ошибок, чем код может исправить, декодирование завершается неудачей. Страница показывает причины сбоев декодирования (несовпадение контрольной суммы, слишком маленькая зона тишины, конфликт маски), когда библиотека предоставляет эту информацию.
- Одномерные штрих-коды (UPC, EAN, Code 39, Code 128, ITF) кодируют данные шириной полос и пробелов; двумерные коды (QR Code, Data Matrix, PDF417, Aztec) кодируют в двумерной сетке модулей. Для обоих требуется зона тишины ~10x единичной ширины для корректного распознавания.
- Конвейер обработки изображений: градации серого по Rec. 601 (0,299R + 0,587G + 0,114B) → пороговая обработка по Оцу или Сауволы → обнаружение границ Собеля → преобразование Хафа для определения ориентации → анализ связанных компонент для нахождения ограничивающей рамки символа.
- Code 128 имеет 3 набора кодирования: A (заглавные + управление), B (заглавные + строчные), C (пары цифр 00-99). Коды переключения наборов позволяют кодировщику выбирать наиболее компактный набор для каждой подстроки, упаковывая UPC-A '123456789012' плотнее, чем Code 39.
- Code 39: 9 полос + 9 пробелов на символ, 3 широкие (1) и 6 узких (0); стартовый/стоповый символ '*'. Опциональная контрольная цифра mod-43. Широко используется в автомобилестроении, оборонной промышленности и государственных структурах США (MIL-STD-1189).
- Code 93 — предшественник Code 128, с 9 модулями на символ (6 данных + старт/стоп) и 47 уникальными символами; в большинстве приложений заменён Code 128, но всё ещё встречается в некоторых канадских аптеках и приложениях USPS.
- QR Code: коррекция ошибок Рида-Соломона на уровнях L/M/Q/H (7%/15%/25%/30% избыточности), 8 паттернов маскирования, от 21x21 до 177x177 модулей (версии 1–40). Три паттерна обнаружения 7x7 в углах обеспечивают ориентацию; паттерны выравнивания 5x5 на более крупных версиях корректируют искажение перспективы.
- Data Matrix: L-образная сплошная граница с двух сторон, чередующиеся тёмные/светлые элементы с двух других; используется для маркировки мелких предметов в электронике и фармацевтике (ISO/IEC 16022).
- ZXing (Zebra Crossing, Apache-2.0, Google): многоплатформенный декодер с открытым исходным кодом, используемый на этой странице. Поддерживает UPC-A/E, EAN-8/13, Code 39/93/128, ITF, Codabar, QR Code, Data Matrix, PDF417 и Aztec. Этот инструмент декодирует только из файлов изображений (загрузка, перетаскивание или вставка из буфера обмена); сканирование с камеры в реальном времени не предусмотрено.
- Контрольные суммы: UPC/EAN используют mod-10, Code 128 — mod-103, Code 39 — опциональный mod-43, QR Code — коррекцию ошибок Рида-Соломона. Несовпадение контрольной суммы указывает на повреждение изображения, а не на ошибку в данных.
Примеры
Распознавание штрих-кода товара
Загрузите фото товара из супермаркета, декодируйте штрих-код EAN-13, чтобы получить 6901234567890, затем найдите название товара, производителя, цену и др.Получение трек-номера
Сфотографируйте штрих-код накладной, декодируйте, чтобы получить трек-номер вроде SF1234567890, введите на сайте курьерской службы для проверки статуса доставкиДекодирование ISBN книги
Отсканируйте штрих-код на задней обложке книги, декодируйте номер ISBN вроде 9787111234567, найдите подробную информацию в каталоге книгЧасто задаваемые вопросы
Какие форматы штрихкодов распознаются?
Распространённые 1D-коды: CODE 128, EAN-13, EAN-8, UPC-A, UPC-E, CODE 39, CODE 93, ITF (Interleaved 2 of 5), Codabar, а также 2D-коды — QR Code, Data Matrix, Aztec и PDF417. Страница использует библиотеку ZXing прямо в вашем браузере, чтобы распознать все эти форматы из одной загруженной картинки.
Загружается ли изображение для распознавания?
Нет. Распознавание полностью идёт в браузере через WebAssembly или чистый JavaScript. Перетащите картинку — её байты читаются локально, на сервер ничего не отправляется. Это можно проверить во вкладке Network в инструментах разработчика.
Почему мой штрихкод не распознаётся?
Типичные причины: размытое изображение, штрихкод повёрнут сильнее, чем допускает декодер, слишком низкий контраст, блики. Попробуйте плотнее обрезать кадр вокруг кода, увеличить яркость и контраст и убедиться, что для полного кода ширина изображения хотя бы 200–300 пикселей. Глянцевые напечатанные коды, снятые при прямом свете, часто не считываются.
Какие форматы изображений принимаются?
Поддерживаются PNG, JPEG, GIF, WebP и BMP. Можно загрузить файл, перетащить его или вставить из буфера обмена. Изображение читается в скрытый canvas для распознавания — на сервер ничего не отправляется.
Что входит в результат?
Распознанное текстовое содержимое и определённый формат штрихкода. Если в коде записан URL, появляется кнопка для открытия его в новой вкладке. Также показываются количество символов и название формата.
Проверяется ли контрольная цифра EAN-13?
ZXing возвращает результат только тогда, когда штрихкод проходит все внутренние проверки, включая контрольную цифру формата. Если распознать не удалось, страница пишет «No barcode detected» и не различает между нечитаемой картинкой и ошибкой контрольной суммы.
Можно ли распознать несколько штрихкодов из одной картинки?
Страница распознаёт самый чёткий код на изображении. Если штрихкодов несколько, обрежьте каждый отдельно и загружайте по одному — так результат надёжнее.