Открыть сервисСервис

Создание QR-кодов: способы и инструменты

QR-код (Quick Response code, «код быстрого ответа») — это двухмерный матричный штрихкод, разработанный в 1994 году японской компанией Denso Wave для маркировки деталей на автомобильных конвейерах. Код представляет собой квадратное изображение из чёрных модулей на белом фоне, в котором информация закодирована в двумерной структуре. Считывается QR-код любым смартфоном с камерой или специальным сканером за доли секунды, что и обеспечило его широкое распространение.

Структура QR-кода

QR-код имеет строго определённую архитектуру, которую необходимо понимать при создании:

  • Три квадратных маркера позиционирования (finder patterns) в углах — позволяют сканеру определить положение и ориентацию кода;
  • Маркеры выравнивания (alignment patterns) — помогают скорректировать перспективные искажения при съёмке под углом;
  • Тайминг-паттерны — чередующиеся чёрные и белые модули, задающие систему координат;
  • Поле данных и коррекция ошибок — занимает основную часть кода и содержит непосредственно закодированную информацию.

Всего стандарт ISO/IEC 18004 предусматривает 40 версий QR-кодов — от 21×21 модулей (версия 1) до 177×177 модулей (версия 40). Чем больше версия, тем больше данных можно разместить. На практике чаще всего используются версии 1–10.

Уровни коррекции ошибок

При создании QR-кода необходимо выбрать уровень коррекции ошибок (error correction level), определяющий, сколько повреждённых модулей кода сможет восстановить сканер:

УровеньВосстановлениеТипичное применение
Lдо 7 %Максимальная ёмкость кода
Mдо 15 %Стандарт по умолчанию
Qдо 25 %Повышенная надёжность
Hдо 30 %Коды с логотипом, «грязные» условия

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

Способы создания QR-кода

Онлайн-генераторы

Самый простой способ — воспользоваться бесплатным онлайн-генератором. Пользователь вводит текст или ссылку, выбирает уровень коррекции, цвет и размер, а сервис выдаёт готовое изображение в формате PNG, SVG или EPS. Основные российские и международные сервисы: QRCode Monkey, QRStuff, «Яндекс.Метрика» (генератор QR для ссылок), qr.ru. При выборе онлайн-генератора стоит учитывать, что часть сервисов хранит созданные коды и статистику переходов на своих серверах — для конфиденциальных данных это нежелательно.

Программные библиотеки

Для встраивания генерации QR-кодов в приложения и сервисы используются библиотеки:

  • Python: qrcode, segno, pyqrcode;
  • JavaScript: qrcode.js, qr-code-styling, библиотеки для React и Vue;
  • Java / Android: ZXing («Zebra Crossing»), ZBar;
  • C# / .NET: QRCoder, ZXing.Net;
  • PHP: phpqrcode, BaconQrCode.

Пример минимального кода на Python с библиотекой segno:

``python import segno qr = segno.make("https://example.ru";, error='m') qr.save("qr.png", scale=8, border=4) ``

Генерация в графических редакторах

Adobe Illustrator, CorelDRAW и Figma (через плагины) позволяют создавать QR-коды в векторном формате, что удобно для печати на больших носителях — баннерах, упаковке, вывесках.

Генерация в офисных программах

Microsoft Word и Google Docs поддерживают вставку QR-кодов через встроенные функции или сторонние дополнения. В Excel и Google Таблицах можно массово генерировать коды для набора ссылок из столбца.

Что можно закодировать

QR-код способен хранить до 7089 цифр или 4296 символов в версии 40. Типичные сценарии:

  • URL-ссылки на сайты, страницы оплаты, меню ресторанов;
  • Контактные данные в формате vCard;
  • Текстовые сообщения;
  • Wi-Fi-сети (SSID, пароль, тип шифрования);
  • Геокоординаты;
  • Реквизиты для переводов (СБП, номер карты);
  • Электронные билеты и сертификаты.

Правила визуального оформления

При создании QR-кода для печати или публикации необходимо соблюдать ряд требований:

  • Минимальный размер — не менее 2×2 см для кода с URL;
  • Поля (quiet zone) вокруг кода — минимум 4 модуля со всех сторон;
  • Высокий контраст: чёрные модули на белом фоне — оптимальный вариант;
  • Не размещать код на пёстром фоне, не наклонять и не растягивать;
  • Для печати предпочтителен векторный формат SVG или EPS.

Нарушение этих правил — основная причина, по которой QR-код не считывается.

Динамические QR-коды

Статический QR-код хранит данные напрямую, и изменить их после создания нельзя. Динамический QR-код содержит короткую ссылку на сервер генератора, которая перенаправляет на нужный адрес. Такой подход позволяет менять конечный URL без перевыпуска кода, а также собирать статистику сканирований. Динамические коды обычно предоставляются платных сервисами, например, QRStuff, Beaconstac, «Контур.Маркетинг».

Безопасность

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

Источники:

  • ISO/IEC 18004:2015. Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification
  • Denso Wave Incorporated. QR Code Basics (официальный сайт разработчика)
  • ГОСТ Р ИСО/МЭК 18004-2013 «Информационные технологии. Технологии распознавания и сбора данных. Спецификация символики штрихового кода QR»
  • Liu D., et al. QR Code Security // Proceedings of the 8th International Conference on Future Energy Systems, 2017
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru