Вы сканируете их в кафе, на плакатах и в меню — а задумывались, что реально происходит, пока телефон ловит фокус? Внутри QR-кода спрятана целая инженерная машина: узоры для наведения, «линейки», байты коррекции ошибок и восемь хитрых масок. Давайте разберём её по винтикам — и даже испортим что-нибудь. По-настоящему.
Никаких «скачать приложение» и «зарегистрироваться». Это настоящий декодер на jsQR — тот же алгоритм, что живёт внутри камеры вашего телефона. Он молча обрабатывает 60 кадров в секунду и ищет в них три узнаваемых «глаза».
Наведите камеру на любой QR в комнате — или откройте эту страницу на одном устройстве, а QR покажите на другом. Работает и с экрана монитора.
Разрешите доступ к камере, чтобы начать сканировать. Ничего не записывается и не отправляется — всё происходит в браузере.
Снаружи QR-код похож на случайную мозаику. На самом деле это город с районами: три «глаза» для навигации, «линейки» для подсчёта размера, зарезервированные зоны для служебных байтов и центральный район с данными. Кликайте по цветным зонам — справа появится объяснение.
Кликните на любой цветной регион слева или на легенду выше. Здесь появится объяснение, зачем эта зона существует и что будет, если её повредить.
Наверняка вы видели в конструкторах QR выбор L / M / Q / H. Это не «качество картинки», как многие думают. Это ECC: сколько «резерва» заложено внутрь кода.
Генератор QR не просто упаковывает ваш текст — он добавляет к нему избыточные байты по алгоритму Рида-Соломона. Проще говоря, каждый блок данных дублируется математически так, что если часть модулей потеряется, сканер всё равно восстановит оригинал. Это как если бы вы записали телефон друга в трёх видах: цифрами, прописью и намекая — и любого одного хватило бы для восстановления.
L (Low) — восстанавливает до ~7% повреждённых модулей. Код компактный, но хрупкий. Подойдёт для чистых условий — например, для ссылки на экране.
M (Medium) — до ~15%. Универсальный вариант, по умолчанию у большинства генераторов.
Q (Quartile) — до ~25%. Хорошо работает, если QR напечатан на витрине или баннере.
H (High) — до ~30%. Максимум надёжности. Обязателен, если хотите впихнуть логотип в центр или QR будет жить на упаковке, где его легко поцарапать.
Настоящий брендированный QR: фирменные цвета и логотип в центре. Работает благодаря тому самому ECC — если поставить уровень H, логотип закроет часть модулей, а код всё равно прочитается.
Зажатой мышью или пальцем закрашивайте модули. Страница в реальном времени прогоняет код через настоящий jsQR — не имитация, а честная попытка декодирования. Смотрите, при каком проценте повреждений ECC сдаётся.
Здесь не «теоретические 30%», а то, что реально скажет jsQR на текущее состояние картинки.
Внутри QR-кода нет универсального способа хранить символы. Есть три режима, и генератор подбирает лучший автоматически. Печатайте в поле ниже — увидите, как режим меняется в реальном времени.