ToolActToolAct

Декодер QR

Сканируйте и декодируйте изображения QR-кодов онлайн. Поддержка перетаскивания и вставки из буфера обмена. Вся обработка происходит в браузере.

Загрузить изображение QR-кода

Перетащите изображение QR-кода сюда

Поддерживает PNG, JPG, GIF, BMP, WebP и другие распространённые форматы изображений

Вы также можете вставить изображение из буфера обмена с помощью Ctrl+V

Что такое декодирование QR-кода?

Декодер QR-кодов читает изображение с QR-кодом и извлекает данные, записанные внутри. Результатом может быть URL, обычный текст, настройки Wi-Fi, контактная карточка, платежная ссылка или другая закодированная строка. Инструмент полезен, когда нужно проверить QR-код перед открытием, получить текст из скриншота, перенести данные из документа или разобраться, почему код плохо сканируется телефоном. Расшифрованный результат не становится автоматически безопасным: ссылки стоит проверять перед переходом, потому что QR-код может вести на фишинг, устаревший ресурс или неожиданный редирект. Изображение обрабатывается локально в браузере. При сомнении результат лучше скопировать и проверить отдельно. При совместном использовании нужно заранее прояснить входные данные, допущения и ожидаемый результат, чтобы вывод не поняли неверно.

Как использовать

Как использовать

  1. Нажмите на область загрузки, чтобы выбрать изображение QR-кода, или перетащите его
  2. Также можно вставить изображение из буфера обмена с помощью Ctrl+V (Cmd+V на Mac)
  3. Инструмент автоматически распознает и декодирует содержимое QR-кода
  4. Декодированный результат появляется ниже с автоматическим определением типа содержимого (URL или текст)
  5. Нажмите «Copy Result», чтобы скопировать декодированное содержимое в буфер обмена

Советы по декодированию

  • Используйте чёткое изображение с полностью видимым QR-кодом и достаточной тихой зоной вокруг для надёжного распознавания.
  • К декодированным ссылкам относитесь осторожно: просмотрите текст и проверьте домен, прежде чем открывать незнакомые URL из QR-кодов.

Применение

Декодирование QR-кодов из загруженных или вставленных изображенийПеретащите изображение, выберите файл или вставьте картинку из буфера обмена — инструмент отрисует её на скрытом canvas и считает данные. Это удобно, когда у вас есть скриншот, фотография или сохранённый QR-код, а сканера телефона нет под рукой.
Разделение URL и обычного текста в результатахПосле декодирования содержимое классифицируется как URL, если его можно разобрать через конструктор URL браузера, иначе — как текст. Для URL доступно действие «открыть в новой вкладке», а все результаты можно скопировать с отображением количества символов.
Проверка читаемости QR-кода при дизайнеПоскольку декодер работает напрямую с пикселями изображения, он помогает проверить, сканируется ли сгенерированный или нарисованный QR-код после изменения размера, цвета, скриншота или сжатия. Ошибка чтения даёт чёткое сообщение об отсутствии QR-кода или ошибке декодирования вместо молчаливого вывода, что удобно для сравнения двух вариантов дизайна при брендинг-ревью.
Чтение длинных payloads Wi-Fi или vCardДекодированные строки Wi-Fi показывают SSID, пароль и тип безопасности из изображения без камеры телефона — полезно при проверке печатной карточки гостевой сети. Результаты vCard можно скопировать и вставить в форму контактов для ручного импорта.
Проверка QR-кода перед переходом по ссылкеВсегда сначала читайте декодированный URL, а не сканируйте изображение телефоном напрямую, ведь QR-код может скрывать сокращённые ссылки, фишинговые страницы или устаревшие редиректы. Декодированный текстовый результат без действия по клику — более безопасный предпросмотр, чем однократный переход. Современные браузеры на Chromium предлагают API BarcodeDetector, который быстр, но плохо справляется с Micro-QR и повреждёнными кодами, поэтому страница использует JS-библиотеку как запасной вариант. Коррекция ошибок Reed-Solomon на уровнях M, Q или H может спасти размытое фото, но плотные коды с низким контрастом часто не считываются и требуют пересъёмки с лучшим освещением. Micro-QR-коды с одним маркером позиционирования — отдельное семейство, обычно требующее специального сканера.

Технический принцип

Декодирование QR-кода — это многоэтапный конвейер обработки изображений, который находит код на фотографии или скриншоте, корректирует перспективное искажение, переводит изображение в чёрно-белый формат, считывает сетку модулей, применяет коррекцию ошибок и декодирует данные в соответствии с режимом кодирования. Этот инструмент использует библиотеку jsQR, реализующую полный конвейер на JavaScript в основном потоке браузера. Первый этап — обнаружение трёх поисковых паттернов — характерных маркеров 7x7 «квадрат в квадрате в квадрате» в левом верхнем, правом верхнем и левом нижнем углу каждого QR-кода. jsQR сканирует изображение на наличие последовательностей чередующихся чёрных и белых пикселей, соответствующих соотношению 1:1:3:1:1, характерному для поперечного сечения поискового паттерна, независимо от поворота. После обнаружения трёх поисковых маркеров их центры тяжести определяют ограничивающий четырёхугольник кода. Коррекция перспективы преобразует четырёхугольник в квадратную сетку с помощью матрицы гомографии, вычисляемой из четырёх угловых точек. Это необходимо, потому что QR-коды редко фотографируют строго перпендикулярно — коррекция выпрямляет код так, чтобы каждый модуль (чёрный или белый квадрат, представляющий один бит) попадал на регулярную сетку. Размер модуля определяется размерами поискового паттерна и номером версии, который считывается из полос форматной информации рядом с поисковыми маркерами. Бинаризация изображения преобразует значения оттенков серого в чисто чёрный и белый. jsQR использует адаптивный пороговый метод: вместо одного глобального порога (который не работает при неравномерном освещении или тенях) вычисляются пороги для небольших областей изображения, что делает декодер устойчивым к градиентам и виньетированию, характерным для фотографий со смартфонов. Коррекция ошибок использует коды Рида-Соломона, как указано в ISO/IEC 18004:2015. QR-коды поддерживают четыре уровня коррекции ошибок: L (~7% восстановления), M (~15%), Q (~25%) и H (~30%). Кодовые слова данных и кодовые слова коррекции ошибок чередуются блоками; jsQR выполняет вычисление синдромов и применяет алгоритм Берлекэмпа-Мэсси для обнаружения и исправления ошибок в пределах номинальной ёмкости кода. Если повреждение превышает уровень коррекции, декодирование завершается неудачей, а не возвращает повреждённые данные. Наконец, декодированный битовый поток интерпретируется в соответствии с индикатором режима кодирования в первых четырёх битах: числовой (0001, 10 бит на 3 цифры), буквенно-цифровой (0010, 11 бит на 2 символа), байтовый (0100, 8 бит на символ, обычно UTF-8 или Latin-1), кандзи (1000, 13 бит на символ с использованием Shift JIS) или ECI (0111, Extended Channel Interpretation для указания набора символов). Инструмент отображает декодированную строку и автоматически определяет, является ли она URL (путём попытки разбора через new URL()) или обычным текстом.

  • Обнаружение поискового паттерна: jsQR сканирует строки на наличие чередующихся чёрных/белых пиксельных последовательностей, соответствующих соотношению 1:1:3:1:1 — три таких паттерна под примерно прямыми углами подтверждают наличие QR-кода и его ориентацию независимо от поворота.
  • Коррекция перспективы: матрица гомографии, вычисленная из четырёх обнаруженных угловых точек, отображает искажённый четырёхугольник на квадратную сетку — этот этап необходим, потому что реальные фотографии редко захватывают QR-коды строго перпендикулярно.
  • Адаптивная бинаризация: локальное пороговое разделение делит изображение на небольшие области и вычисляет пороги для каждой области, что делает декодер устойчивым к неравномерному освещению, теням и градиентам, которые вывели бы из строя глобальный порог.
  • Коррекция ошибок Рида-Соломона (ISO/IEC 18004): четыре уровня (L/M/Q/H) обеспечивают 7-30% восстановления данных — алгоритм Берлекэмпа-Мэсси определяет позиции ошибок, а алгоритм Форни вычисляет величины коррекций; если повреждение превышает уровень, декодирование завершается чисто.
  • Определение режима кодирования: первые четыре бита данных указывают режим — числовой (0001, эффективный для цифр), буквенно-цифровой (0010, для A-Z 0-9 и символов), байтовый (0100, для произвольных данных UTF-8/Latin-1), кандзи (1000, для Shift JIS) и ECI (0111, для спецификации набора символов).
  • Версия и сетка модулей: версии QR-кодов варьируются от 1 (21x21 модуль) до 40 (177x177), при этом каждая версия добавляет 4 модуля на сторону — версия считывается из полос форматной информации рядом с поисковыми паттернами, а количество модулей определяет плотность сетки семплирования.
  • Выполнение в браузере: изображение отрисовывается на скрытом элементе Canvas, getImageData() извлекает необработанный буфер пикселей RGBA, а jsQR обрабатывает его полностью в основном потоке браузера — данные изображения не загружаются на какой-либо сервер, а canvas удаляется сборщиком мусора после завершения декодирования.

Примеры

QR-код с URL

Считанные данные: https://example.com
Тип:        URL
Действие:   сканер открывает ссылку в системном браузере после подтверждения

QR-код с обычным текстом

Считанные данные: This is text content
Тип:        Текст
Действие:   сканер копирует текст в буфер обмена или показывает его в результирующем окне

QR-код с данными WiFi

Считанные данные: WIFI:T:WPA;S:NetworkName;P:Password;;
Тип:        WiFi (WPA2)
Действие:   телефоны, распознающие формат, предлагают «Подключиться к NetworkName?» и подключаются с указанным паролем

Контактная карточка vCard

Считанные данные: BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nTEL:+1-555-0142\nEMAIL:jane@example.com\nEND:VCARD
Тип:        Контактная карточка
Действие:   телефоны предлагают создать новую запись в адресной книге из распознанных полей

Часто задаваемые вопросы

Загружается ли изображение для декодирования?

Нет. Декодирование идёт в вашем браузере через WebAssembly или чистый JS. Байты изображения читаются локально; ничего не отправляется на сервер.

Какие способы ввода поддерживаются?

Загрузка файла, вставка изображения из буфера обмена или перетаскивание файла изображения. Изображение обрабатывается в вашем браузере и не передаётся на сервер.

Что возвращает декодер?

Сырой декодированный текст. Страница определяет, является ли результат URL или обычным текстом, и показывает соответствующий бейдж. Если это URL, появляется кнопка «Открыть URL».

Почему мой QR не декодируется?

Частые причины: размытие, низкий контраст, блики, перспективный наклон или код частично закрыт. Подкадрируйте ближе, увеличьте яркость, держите камеру стабильно под 90° к поверхности. QR-коды с уровнем коррекции L почти не переносят повреждений; уровень H терпит существенное перекрытие.

Декодирует ли он QR-коды со скриншотов и из PDF?

Скриншоты обычно декодируются хорошо, потому что у них идеальный контраст и нет перспективных искажений. Для PDF сначала сделайте скриншот участка с QR, затем загрузите изображение.

Стоит ли открывать каждый URL из QR-кода?

Нет. QR-коды — известный вектор фишинга («куишинг»), потому что URL спрятан за визуальным кодом. Перед открытием изучите декодированный URL — страница показывает его полностью, чтобы можно было прочитать домен. Остерегайтесь доменов с опечатками, IP-адресов и ссылок-сократителей, скрывающих настоящий пункт назначения.

Может ли он декодировать несколько QR на одном изображении?

Страница определяет один QR-код на изображение. Если у вас изображение с несколькими кодами, обрежьте каждый отдельно и загрузите по одному — для самого надёжного результата.

Связанные инструменты

Генератор QR-кодов

Онлайн-инструмент для создания QR-кодов с поддержкой текста, URL, визитных карточек. Настраиваемый стиль, цвет и размер.

Декодер Штрих-кодов

Бесплатный онлайн-декодер штрих-кодов. Загрузка изображений, перетаскивание или вставка для сканирования и декодирования штрих-кодов. Поддержка CODE128, EAN13, EAN8, UPC, CODE39. Всё в браузере.

Генератор Штрих-кодов

Бесплатный онлайн-генератор штрих-кодов. Поддержка форматов CODE128, EAN13, EAN8, UPC, CODE39, ITF14. Настройте цвета и размеры, создавайте и скачивайте штрих-коды в формате PNG или SVG.

Инструмент преобразования изображений в Base64

Онлайн-инструмент для конвертации изображений в Base64 и обратно с поддержкой перетаскивания, предпросмотром и множеством форматов.

Кодировщик/Декодировщик Base64

Онлайн-инструмент для кодирования и декодирования Base64 с поддержкой UTF-8 текста, кириллицы и изображений. Мгновенное кодирование без установки программ.

Кодировщик/Декодировщик URL

Бесплатный онлайн-кодировщик и декодировщик URL для параметров, текста Unicode и спецсимволов. Исправляйте проблемы с кодировкой ссылок прямо в браузере.