Описание инструмента

Этот инструмент одновременно считывает QR-коды с множества изображений. Добавляйте любое количество файлов изображений — инструмент декодирует каждый найденный QR-код и выводит результаты рядом с именем файла. Если на изображении несколько QR-кодов, для каждого из них будет создана отдельная строка. Это быстрый способ извлечь ссылки, настройки Wi‑Fi, контактные карточки или билеты из папки со скриншотами и фотографиями, не сканируя их по одному.

Сканирование выполняется с помощью библиотеки ZBar, скомпилированной в WebAssembly, и полностью происходит в вашем браузере, поэтому изображения никуда не загружаются. Инструмент работает в любом современном браузере. Он распознаёт повернутые QR-коды и QR-коды на прозрачном фоне, а также может считывать изображение, полностью выполненное в светлых тонах на тёмном фоне.

Возможности

  • Добавляйте несколько изображений одновременно, перетаскивая их или выбирая через браузер файлов
  • Считывайте все QR-коды на изображении: результаты выводятся сверху вниз, а затем слева направо
  • Просматривайте результат для каждого файла в сортируемой таблице с указанием статуса
  • Переключайтесь на обычный текст с одним декодированным значением в строке или на JSON, содержащий имя файла, статус и значение
  • Файлы без QR-кодов и файлы, которые не являются читаемыми изображениями, отображаются в результатах, а не пропускаются без уведомления
  • Копируйте или скачивайте результаты в формате текста и JSON

Примечания

Поддерживаемые форматы изображений зависят от браузера и обычно включают PNG, JPEG, GIF, WebP, BMP и AVIF. Маленькие, размытые или сильно обрезанные QR-коды могут не распознаваться. Если на изображении присутствуют обычные и инвертированные QR-коды (светлые на тёмном фоне), инвертированные QR-коды считываются только в том случае, если обычные QR-коды не найдены.

Вывод JSON

На вкладке JSON отображается массив, содержащий одну запись для каждого декодированного QR-кода. Файл с несколькими QR-кодами появляется по одному разу для каждого кода, а файл без читаемого QR-кода появляется один раз со значением null в поле текста. Вывод соответствует следующей JSON Schema:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "file": {
        "type": "string",
        "description": "Имя файла изображения"
      },
      "status": {
        "enum": ["found", "notFound", "unreadable"],
        "description": "found: QR-код декодирован. notFound: изображение не содержит QR-кода. unreadable: файл не является изображением, которое может открыть браузер."
      },
      "text": {
        "type": ["string", "null"],
        "description": "Декодированный текст QR-кода или null, если статус не равен found"
      }
    },
    "required": ["file", "status", "text"],
    "additionalProperties": false
  }
}

Например, одно изображение с двумя QR-кодами, одно изображение без QR-кода и один файл, не являющийся изображением:

[
  { "file": "poster.png", "status": "found", "text": "https://example.com" },
  {
    "file": "poster.png",
    "status": "found",
    "text": "WIFI:T:WPA;S:Guest;P:secret;;"
  },
  { "file": "logo.png", "status": "notFound", "text": null },
  { "file": "notes.txt", "status": "unreadable", "text": null }
]