Генерация QR-кода

Ввод данных:

Уровень коррекции: (7% повреждений)
(15% повреждений)
(25% повреждений)
(30% повреждений)
(от 1 до 40)
(−1 автоматическое определение)
(от 1 до 10)
Стиль модулей:
Квадраты Обычный
Круги (GO) Игра go
Градиент:
Цвет фона:
Цвет модулей:
Второй цвет:
Изображение:
Убрать фон:
Шифрование
Изображение (PNG):
Действие:
-

Телеграм бот


Пошаговый процесс генерации QR-кода

Количество символов в текстовом поле:

Информация о каждом символе и его возможной кодировке:

Индекс Символ Юникод Ц БЦ Б К

Может ли каждый символ быть закодирован:

Кодирование Возможно ли закодировать

Выбранный режим для кодирования всех символов:

Переведем каждый символ в двоичное число. For numeric and alphanumeric modes, consecutive characters are grouped together before being encoded into bits.

Индех Символ Юникод Значение-1 Значение-2 Биты

Характеристики созданного сегмента:

  • Количество:
  • Данные:

Общая длина в битах, необходимая для представления списка сегментов, в зависимости от версии:

Диапазон Числовые биты Количество байтов
Версии 1 ~ 9
Версии 10 ~ 26
Версии 27 ~ 40

Ёмкость QR-кода в кодовых словах для каждой версии и уровня исправления ошибок, а также соответствие данных (зелёный/красный фон):

Версия Low Medium Quartile High
Версии QR-кода: https://www.qrcode.com/en/about/version.html

Выбранная версия:

Поле Биты Кол-во бит Сумма битов
  • Способ кодирования всегда состоит из 4 битов.(0001 - цифровое кодирования, 0010 - буквенно-цифровое, 0100 - побайтовое)

  • Количество данных — это количество кодируемых символов, а для побайтового — количество байт. Зависит кодировки и версии

  • Терминатор в QR-коде — это битовый шаблон, состоящий из нулей, используемый для индикации окончания двоичной строки, представляющей данные.

  • Дополнение битами составляет от нуля до семи «нулевых» битов для заполнения всех неиспользуемых битов в последнем байте.

  • Дополнение байтами состоит из чередующихся (в шестнадцатеричном формате) EC и 11 до достижения максимальной ёмкости.

Полная последовательность битов данных:

Вся последовательность байтов кодовых слов данных, отображаемая в шестнадцатеричном виде:

Данные про все блоки:

Блоков данных:
Количество блоков:
Кол-во данных в коротком блоке:
Кол-во данных в длинном блоке:
Блоков коррекции:
Коротких блоков:
Длинных блоков:
Номер блока

Конечная последовательность кодовых слов, сформированная путем чередования данных/кодовых слов ECC из разных блоков:

Конечная последовательность битов для рисования при сканировании зигзагом:

Нарисуем горизонтальные и вертикальные полосы синхронизации (в строке 6 и столбце 6, начиная с 0 в левом верхнем углу):

Выделим поисковые узоры в трех углах, каждый из которых имеет размер 8×8, включая разделительное поле:

Нарисуем сетку выравнивающих узоров, каждый из которых имеет размер 5×5. Они помогают исправлять искажения, возникающие при сканировании кода под углом или на неровной поверхности:

Разместим пустые поля (рядом с поисковыми узорами) для указания кода маски и уровня коррекции:

Нарисуйте два блока 6×3 (рядом с поисковыми узорами), которые содержат информацию о версии:

Нарисуем модули данных в соответствии с порядком зигзагообразного сканирования(с правого нижнего угла) и значениями битов из окончательной последовательности кодовых слов::

1-темный модуль, 0-светлый модуль:

Показать:

Шаблон маски (влияет только на нефункциональные модули):

Если модуль маски черный, то при наложение темный модуль QR-кода становиться белым, белый модуль - черным. Операция XOR :

Шаблон маски:
Без наложения маски:
С наложением маски:

Биты формата :

По горизонтали и вертикали за каждые 5 и более идущих подряд модулей одного цвета начисляются штрафные очки: длина повторяющихся модулей - 2.

Вертикаль:

За каждый квадрат модулей одного цвета размером 2 на 2 начисляется по 3 штрафных очка:

Горизонтальные последовательности ЧБЧЧЧБЧ:

Вертикальные последовательности ЧБЧЧЧБЧ:

Характеристика маски:

Длина стороны:
Общее количество модулей:
Светлые модули:
Темные модули:
Пропорция:
Отклонение от 50%:

№ Маски ЧЧЧЧЧ / БББББ Квадрат ЧБЧЧЧБЧ Соотн. Всего штр. очков

Наименьшее количество штрафных очков у шаблона маски

Как высчитываются штрафные очки:

  • Правило 1. По горизонтали и вертикали за каждые 5 и больше идущих подряд модулей одного цвета начисляется количество очков, равное длине этого участка минус 2

  • Правило 2. За каждый квадрат модулей одного цвета размером 2 на 2 начисляется по 3 очка.

  • Правило 3. За каждую последовательность модулей . ЧБЧЧЧБЧ:, с 4-мя белыми модулями с одной из сторон (или с 2-х сразу), добавляется 40 очков (по вертикали или горизонтали)
  • Правило 4. Соотношение: 0 очков, если доля тёмных модулей находится в диапазоне [45%, 55%]; 10 очков, если в диапазоне [40%, 60%]; 20 очков, если в диапазоне [35%, 65%]; 30 очков, если в диапазоне [30%, 70%]