Узор QR-кода хранит зашифрованную последовательность данных в двоичном формате (1 и 0) в виде матрицы. Каждой отдельной ячейке сетки присваивается значение в зависимости от цвета (черный или белый). Затем ячейки группируются в более крупные узоры. Ключи закодированных данных содержат дубликаты, поэтому при незначительном повреждении поверхности QR-кода его можно считать.
QR-код может иметь одну из следующих
кодировок:·
Цифровая: 10 битов на три цифры, до 7089 цифр;
·
Алфавитно-цифровая: поддерживаются 10 цифр, буквы от A до Z и несколько спецсимволов. 11 битов на два символа, до 4296 символов;
·
Байтовая: данные в любой подходящей кодировке (по умолчанию
ISO 8859-1), до 2953 байт;
·
Кандзи: 13 битов на иероглиф, до 1817 иероглифов.
Составление QR-кода проходит в
несколько этапов:· Информация кодируется одним из способов (цифровым, буквенно-цифровым, байтовым или кандзи), превращаясь в поток битов — последовательность нулей и единиц;
· Формируется служебная информация, определяющая версию кода и кодировки;
· Полученные потоки разбивается на блоки;
· К каждому блоку добавляются байты коррекции в зависимости от выбранной версии кода;
· Два блока (исходных данных и коррекции) объединяются в один поток, чтобы получилась последовательность данных.
· Данные заносятся в поле кода. Для этого пространство, оставшееся после введения обязательных элементов, делится на столбики шириной в два модуля. Они заполняются «змейкой», ноль — белый модуль, единица — черный.
Составление QR-кода происходит с помощью различных сопутствующих программ.
Для использования QR-кода достаточно навести камеру смартфона на код, получить уведомление о том, что код распознан и использовать его.
Приложения же в свою очередь распознают черные и белые поля, квадраты в углах подсказывают, что именно нужно читать и где расположена системная информация. Затем в основной части кода белые поля превращаются в нули, черные — в единицы. Получается поток данных, из которых потом восстанавливается исходная информация.