Устранение неполадок

Почему мой QR-код не сканируется? 11 причин и как исправить каждую

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

1. Начните с телефона, а не с кода

Прежде чем что-либо менять в отпечатке, исключите сканер. Каждый iPhone начиная с iOS 11 и каждый Android-телефон начиная с Android 9 читает QR-коды встроенным приложением камеры, но на некоторых телефонах эта функция по умолчанию выключена: на Android ищите «Сканировать QR-коды» в настройках камеры, на телефонах Samsung — в меню «Ещё» камеры, а на iPhone — в «Настройки», «Камера», «Сканирование QR-кодов». Старым телефонам и телефонам с отключённой функцией нужно приложение-сканер или Google Объектив.

Затем проверьте основы. Протрите объектив, держите телефон неподвижно примерно на расстоянии вытянутой руки и дайте ему сфокусироваться; ближе десяти сантиметров большинство камер телефонов теряют фокус. Не направляйте вспышку прямо на глянцевую бумагу. Если телефон показывает декодированный адрес в виде баннера, а вы просто не нажали на него, код работает.

2. Слишком низкий контраст

Сканер решает, тёмный модуль или светлый, сравнивая его с соседями. Тёмно-серый на светло-сером, золотой на кремовом или тёмно-синий на тёмно-зелёном фоне делают это решение неоднозначным, и чтение не удаётся. Безопасное правило — коэффициент контрастности не меньше 4,5 к 1 между цветом модулей и фоном, измеренный так же, как для текста; чёрный на белом даёт 21 к 1 и оставляет наибольший запас на плохое освещение.

Решение: затемните модули или осветлите фон, пока коэффициент не превысит 4,5, и напечатайте образец. Генератор на этом сайте предупреждает под предпросмотром, когда два выбранных вами цвета не дотягивают до этого порога.

3. Цвета инвертированы

ISO/IEC 18004 определяет QR-символ как тёмные модули на светлом фоне. Многие сканеры, включая стандартные приложения камеры на некоторых телефонах, вообще не читают светлый код на тёмном фоне, а другие читают его нестабильно. Дизайнеры инвертируют коды под тёмное оформление бренда, и это самая частая причина, по которой код, который «выглядит нормально», отказывается сканироваться.

Решение: оставляйте модули темнее фона. Если окружающий дизайн тёмный, напечатайте код на светлой плашке с собственной свободной зоной — это заодно решает и следующую проблему.

4. Отсутствует свободная зона

Свободная зона — это пустое поле вокруг символа, и стандарт требует четыре модуля с каждой стороны. По ней сканер понимает, где заканчивается код и начинается оформление. Рамки, слишком плотно поставленные обводки, текст, подведённый вплотную к краю, или код, положенный на тёмную фотографию, съедают свободную зону, и поисковые узоры в углах перестают распознаваться.

Решение: оставьте поле шириной не меньше четырёх модулей, цвета фона, со всех четырёх сторон. Для кода шириной 29 модулей, напечатанного размером 30 миллиметров, это чуть больше четырёх миллиметров чистого пространства. Рамки генератора рисуются за пределами свободной зоны именно по этой причине; если вы добавляете собственную рамку в программе вёрстки, тоже держите её снаружи.

5. Напечатан слишком мелко для расстояния

Рабочее правило: код должен быть не меньше одной десятой расстояния, с которого его будут сканировать. Визитке, которую сканируют с 20 сантиметров, нужен код в 2 сантиметра; плакату, который читают с 3 метров, — код в 30 сантиметров; код на витрине, рассчитанный на сканирование с тротуара, должен быть больше, чем ожидает большинство людей. Плотные коды с большим числом модулей должны быть ещё крупнее, потому что каждый отдельный модуль должен быть достаточно большим, чтобы камера могла его различить.

Решение: измерьте реальное расстояние сканирования, разделите на десять и воспользуйтесь калькулятором размера, чтобы перевести это в миллиметры и пиксели для версии вашего символа. Сократите данные, если код слишком плотный: более короткий адрес означает меньше модулей и более крупный модуль при том же размере печати.

6. Логотип закрывает слишком много

Логотип в центре кода работает только потому, что коррекция ошибок Reed-Solomon способна восстановить закрытые им модули. Уровень L восстанавливает около 7 процентов символа, M — 15, Q — 25, H — 30. Логотип, закрывающий пятую часть площади кода уровня M, уже израсходовал весь запас, и любая грязь, блик или дефект печати поверх него выводит код за пределы того, что сканер способен восстановить.

Решение: используйте уровень Q или H, когда есть логотип, держите логотип вместе с его отступом заметно меньше пятой части площади символа и никогда не позволяйте ему касаться трёх угловых поисковых узоров. Руководство по коррекции ошибок подробно объясняет этот запас, а инструмент для кодов с логотипом повышает уровень за вас автоматически.

7. Градиенты, узоры и скруглённые модули зашли слишком далеко

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

Решение: проверьте самый светлый конец любого градиента по правилу 4,5 к 1, держите модули в полном размере и никогда не помещайте текстуру или фотографию позади символа. Если сомневаетесь, для тиража вернитесь к квадратным модулям; сканирование дороже стилизации.

8. Экспорт размытый или увеличенный

PNG размером 300 пикселей, растянутый на весь плакат, превращается в мягкое серое пятно без чётких краёв модулей, и порог сканера между тёмным и светлым приходится на середину каждого размытого края. То же происходит, когда растровый код помещают в макет в значительно большем размере, сохраняют как JPEG низкого качества или снимают скриншотом с экрана.

Решение: для всего, что идёт в печать, экспортируйте SVG и дайте программе вёрстки масштабировать вектор; генератор векторных QR-кодов использует это по умолчанию. Если растр необходим, экспортируйте в итоговом размере печати при 300 точках на дюйм и никогда не сохраняйте QR-код в JPEG низкого качества.

9. Поверхность изогнутая, глянцевая или повреждённая

Код, обёрнутый вокруг бутылки или чашки, искажает квадратную сетку в кривую, которую сканер может не суметь выпрямить, особенно когда обёртка занимает больше пятой части окружности. Глянцевый ламинат и стекло отражают свет в помещении яркими пятнами, которые читаются как светлые модули. Царапины, заломы и выцветание попросту стирают модули.

Решение: на изогнутых предметах печатайте код меньшего размера, чтобы кривизна в пределах символа оставалась небольшой, предпочитайте матовые покрытия и повышайте уровень коррекции ошибок до H для всего, что будет находиться на улице или в руках. Коррекция ошибок компенсирует повреждения; геометрию она не компенсирует.

10. Слишком длинные данные

QR-символ растёт вместе с содержимым, вплоть до версии 40 со 177 модулями по стороне. Длинный URL с метками отслеживания, vCard со всеми заполненными полями или абзац текста дают плотную сетку, отдельные модули которой крошечны при любом разумном размере печати, а плотные коды к тому же чувствительнее ко всем остальным проблемам из этого списка.

Решение: сократите данные. Используйте короткий путь на своём собственном домене вместо длинной ссылки с метками, уберите необязательные поля vCard и держите текст в пределах нескольких сотен символов. Версия и число модулей, показанные под предпросмотром на этом сайте, сразу подскажут, помогло ли изменение.

11. Код был динамическим и истёк

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

Решение: напечатанный код починить нельзя; напечатайте новый. На этот раз закодируйте конечный адрес напрямую, чтобы замена никогда не зависела от чьей-либо подписки. Статья «Истекают ли QR-коды?» объясняет, как отличить два вида до печати.

12. Сломан сам адрес назначения

Оставшиеся случаи — это вовсе не сбои сканирования. Веб-страница переехала, пароль от Wi-Fi сменился, номер телефона больше не используется, или в адресе с самого начала была опечатка. Код для Wi-Fi также не работает, когда неверно указан тип защиты, например выбран WEP для сети WPA2, или когда в имени сети есть пробел в конце.

Решение: отсканируйте код, прочитайте декодированный текст на телефоне, прежде чем нажимать на него, и сверьте символ за символом с тем, что вы задумали. Исправьте данные, создайте код заново и перепечатайте.

13. Шестидесятисекундная проверка перед печатью

  • Напечатайте один экземпляр в итоговом размере на итоговом материале.
  • Отсканируйте его двумя разными телефонами через встроенное приложение камеры, с реального расстояния, при реальном освещении.
  • Прочитайте декодированный адрес на экране и убедитесь, что он ваш, а не короткая ссылка на чужом домене.
  • Закройте угол кода большим пальцем и отсканируйте снова; если чтение сразу не удаётся, повысьте уровень коррекции ошибок.
  • Только после этого отправляйте файл в печать.

Источники и дополнительное чтение

Создайте код, который сканируется с первого раза

Статический, высококонтрастный, с правильной свободной зоной и векторным экспортом. Показания под предпросмотром сообщают версию и уровень коррекции ошибок, которые вы отправляете в печать.

Открыть бесплатный генератор