2023 [11] QR-код
QR код – это монохромная картинка, в которой закодированы некоторые данные (алфавитно-цифровые символы, побайтовые данные). QR-код состоит из закрашенных и незакрашенных модулей. Закрашенный модуль соответствует «1», незакрашенный – «0».QR-код типа Micro-QR имеет размер 15x15 модулей и состоит из следующих компонентов (см. рисунок 1):
(1) – поисковый блок (чёрный квадрат размером 3 на 3 модуля, который окружён рамкой из белых модулей, которая окружена рамкой из чёрных модулей, которая окружена рамкой из белых модулей только с внутренних сторон) – расположен в левом верхнем углу;
(2) – горизонтальная синхрополоса (начинаются от самого верхнего правого белого модуля поискового блока и идет, чередуя чёрные и белые модули, по горизонтали);
(3) – вертикальная синхрополоса (начинаются от самого нижнего левого белого модуля поискового блока и идет, чередуя чёрные и белые модули, по вертикали);
(4) – служебная информация, содержащая тип и версию QR-кода (7 бит) – продублирована 2 раза (дубль1 слева-направо, дубль2 снизу-вверх, значение i-х битов в дублях совпадают);
(5) – заголовок данных, содержащий формат данных (1110 – алфавитно-цифровые символы);
(6) – размер данных в символах (8 бит) – число от 0 до 15;
(7) – сами данные и байты заполнителя (при необходимости).
Рисунок 1 – Структура QR-кода
C7 = B1 ⊕ B3 ⊕ B4,
C8 = B2 ⊕ B5 ⊕ B6,
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
Максимальная длина строки в microQR – 15 символов.
Если данных меньше, то оставшиеся 8-битные блоки заполняются масками 2-х типов, чередуя друг друга: 1101 1100, 0001 0001, …, пока не заполнится всё пространство данных QR кода.
Заполнение начинается с правого нижнего угла, идёт в пределах столбика справа-налево, снизу-вверх. Если текущий модуль занят (например, полосой синхронизации, служебными данными или поисковым блоком), то он пропускается. Если достигнут верх столбика, то движение продолжается с верхнего правого угла столбика, который расположен левее, и идёт сверху вниз. Достигнув низа, движение продолжается от нижнего правого угла столбика, который расположен левее, и идёт снизу-вверх. И так далее, пока всё свободное пространство не будет заполнено. Нумерация и порядок заполнения модулей QR-кода представлен на рис.2.
Рисунок 2 – Последовательность битов в блоках QR-кода