Создание 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
