КАК УСТРОЕН QR-КОД? СОБИРАЕМ С НУЛЯ
Summary
TLDRВ видео скрипте рассматривается тема облачных серверов компании Isonet, предлагающих высокоскоростные услуги. Также упоминается изобретение штрих-кода Нормана Вудленда и его ограничения, что привело к созданию QR-кода с большей емкостью информации. В видео объясняется, как работает QR-код, его структура, свойства, а также процесс кодирования и коррекции ошибок. В заключение, скрипт предлагает бесплатный доступ к облачным ресурсам от Cloud.ru и упоминает курсы по искусственному интеллекту.
Takeaways
- 🌐 Изонет предлагает мощные и быстрые серверы, которые не подводят пользователей по всему миру.
- 🛡️ Изонет также предлагает бесплатную защиту и виртуальный сервер Терминатор для размещения серверов в разных локациях по всему миру.
- 📈 В середине XX века Норман Вудленд изобрел штрих-код, который компактно хранит информацию о товаре с помощью черных и белых полос.
- 🔍 Штрих-коды были ограничены в размере и объеме информации, что не устраивало японскую компанию DeNo, которая производит запчасти для автомобилей.
- 💡 Масахиро Хара из компании DeNo разработал QR-код, который может содержать гораздо больше информации и увеличивает скорость сканирования.
- 🔢 QR-код состоит из 40 версий, каждая из которых увеличивает размер на четыре модуля по горизонтали и вертикали.
- 🔗 QR-коды могут содержать не только текст или числа, но и ссылки, изображения, музыку и даже игры.
- 📚 Для кодирования в QR-коде используются различные методы, такие как цифровое, цифро-буквенное и байтовое кодирование.
- 🛠️ Создание QR-кода включает в себя определение версии и уровня коррекции, разбиение данных на блоки, генерацию байтов коррекции и добавление кода маски.
- 🌐 Cloud.ru предоставляет бесплатные облачные ресурсы, включая виртуальную машину и объектное хранилище, для тестирования и разработки.
- 🔗 QR-коды используют вспомогательные модули, такие как квадраты выравнивания и полосы синхронизации, для корректного сканирования и распознавания.
Q & A
Какие преимущества предлагает компания isonet в сфере хостинга?
-Isonet предлагает крепкие и быстрые серверы, флагманские скорости, бесплатную DDoS защиту и виртуальный сервер Терминатор без лишних трат.
Что такое штрих-код и как он был изобретен?
-Штрих-код - это графический элемент, разработанный Норманом Вудлендом, который позволяет компактно хранить информацию о товаре с использованием последовательности черных и белых полос.
Какие проблемы существовали с первоначальными штрих-кодами?
-Первые штрих-коды могли хранить ограниченное количество информации, вмещая всего 8 или 13 цифр, что было недостаточно для маркировки деталей автомобилей.
Какую проблему решил QR-код?
-QR-код (Quick Response Code) устраняет ограничения одномерных штрих-кодов, позволяя закодировать гораздо больше информации и ускоряя процесс сканирования.
Чем отличается QR-код от обычного штрих-кода?
-QR-код является двумерным квадратным кодом, который может содержать не только текст или числа, но и ссылки, изображения, музыку и даже игры.
Какой процесс разработки прошел у масахиро Хара при создании QR-кода?
-Масахиро Хара потратил 2 года на разработку QR-кода, который в итоге превзошел все ожидания и стал способным вмещать гораздо больше информации.
Какой уровни коррекции ошибок есть в QR-коде?
-В QR-коде существует четыре уровня коррекции ошибок: L, M, Q, H, соответствующие 7%, 15%, 25% и 30% допустимых повреждений.
Какой тип кодирования данных в QR-коде наиболее эффективен для китайских и японских иероглифов?
-Для китайских и японских иероглифов используется специальное кодирование Канти, которое оптимально подходит для этих символов.
Чему обучается на платформе университета искусственного интеллекта и как это повлияет на карьеру?
-На платформе обучаются искусственному интеллекту и нейронным сетям, что делает специалистов более востребованными и высокооплачиваемыми на рынке.
Какие компании уже воспользовались образовательными возможностями университета искусственного интеллекта?
-Выпускники университета искусственного интеллекта устроились в такие компании, как Huawei, Dell, Роскосмос, Яндекс и другие.
Что предоставляет облачный провайдер Cloud.ru и какие его особенности?
-Cloud.ru предоставляет бесплатные облачные ресурсы, включая виртуальную машину и объектное хранилище, на платформе Cloud R Evolution с общественно-защищенным облаком на базе собственных разработок.
Какие дополнительные модули используются в QR-коде для корректного сканирования?
-Для корректного сканирования QR-кода используются квадраты выравнивания, полосы синхронизации, номер версии и код маски.
Outlines
🚀 Серверы и изобретение штрих-кода
В первом параграфе рассматривается тема производительности серверов от компании isonet, которые обеспечивают высокоскоростной доступ для пользователей по всему миру. Также упоминается изобретение Нормана Вудленда - штрих-код, который позволяет компактно хранить информацию о товаре в виде черных и белых полос. Однако, японская компания deno, занимающаяся производством автозапчастей, столкнулась с проблемой ограниченной вместимости штрих-кодов для маркировки деталей. В результате, была разработана новая система кодирования - QR-код, который может хранить гораздо больше информации и ускоряет процесс сканирования.
📚 Образование в области ИИ и QR-коды
Второй параграф посвящён образованию в сфере искусственного интеллекта и его значению для специалистов. Университет искусственного интеллекта предлагает инновационное образование, после которого студенты могут получить гарантированную стажировку и работу в компаниях, таких как Huawei, Dell, Роскосмос и Яндекс. Также здесь подробно объясняется, как работает QR-код, включая его структуру, версии, уровни коррекции ошибок и процесс кодирования информации различными способами, от цифрового до байтового кодирования.
🔍 Технология QR-кода и облачные сервисы
Третий параграф продолжает тему QR-кодов, описывая процесс их создания, включая добавление кода версии, коррекции ошибок и маски. Также упоминается провайдер облачных услуг Cloud.ru, который предоставляет бесплатные облачные ресурсы, такие как виртуальные машины и объектное хранилище, для тестирования и разработки продуктов. Облачные сервисы Cloud R Evolution предлагают защищённое публичное облако на базе собственных разработок и свободно распространяемых компонентов.
🛠️ Создание и сканирование QR-кода
В заключительном параграфе описывается процесс создания QR-кода, включая добавление вспомогательных модулей, таких как квадраты выравнивания и полосы синхронизации, которые обеспечивают корректное сканирование. Также рассматривается процесс добавления кода маски, который определяет, какие биты данных инвертировать для корректного считывания. В конце параграфа объясняется, как размещать данные в QR-коде и как добавлять необходимые рамки для предотвращения ошибок при сканировании.
Mindmap
Keywords
💡QR код
💡Изонет
💡Штрих-код
💡Масахиро Хара
💡Кодирование
💡Коррекция ошибок
💡Облачные сервисы
💡Код маски
💡Кодирование UTF-8
💡Коррекция
Highlights
Изонет предлагает высокоскоростные серверы с флагманскими возможностями.
Бесплатная защита DDoS и виртуальный сервер Терминатор включены в сервис.
Серверы Изонет доступны в десятках локаций по всему миру для высокого уровня хостинга.
Норман Вудленд изобретает штрих-код для компактного хранения информации о товаре.
Штрих-коды быстро распространяются по всему миру и используются для маркировки товаров.
Японская компания Deno недовольна ограничениями штрих-кодов и инициирует разработку более эффективного кода.
Масахиро Хара из Deno разрабатывает двумерный QR-код для увеличения объема информации.
QR-код позволяет кодировать не только текст и числа, но и ссылки, изображения, музыку и игры.
Версия QR-кода и уровень коррекции определяют его размер и способность к восстановлению после повреждений.
Кодирование в QR-коде может быть цифровым, цифро-буквенным, байтовым или Канти.
Для цифрового кодирования последовательность чисел переводится в двоичный вид и разбивается на группы.
Цифровые кодировки в QR-коде используют разные группы для представления данных.
Байтовая кодировка представляет данные в двоичном виде как есть, например в кодировке UTF-8.
Для корректного раскодирования данные должны быть помечены способом кодирования и количеством кодируемых данных.
Разбиение данных на блоки и генерация байтов коррекции обеспечивает надежность QR-кода.
Код маски определяет формулу для инвертирования битов данных в QR-коде.
Маски и код уровня коррекции дублируются в QR-коде для увеличения его надежности.
Треугольники выравнивания и полосы синхронизации помогают считывающему устройству корректно определить расположение QR-кода.
Облачные сервисы Cloud.ru предлагают бесплатные облачные ресурсы, включая виртуальные машины и объектное хранилище.
Платформа Cloud R Evolution основана на собственных разработках и свободно распространяемых компонентах.
Transcripts
Вы пробовали крепкие и быстрые сервера
Да сервера от isonet смотрите как наши
серверы взлетают isonet - это серверы
которые не подведут пользователи всего
мира уже используют флагманские скорости
Аза Используй бесплатную дудо защиту
лишние траты не потребуется получите
бесплатный виртуальный сервер Терминатор
разместите свой сервер в одной из
десятка наших локаций по всему миру
Наслаждайся хостингом высокого уровня
саза по самым выгодным ценам
в середине XX века Норман вудленд
Работая в дрексель ском университете
придумывает такой графический элемент
который позволяет компактно хранить в
себе информацию о товаре используя всего
лишь последовательность чёрных и белых
полос такой графический элемент мы все
сегодня знаем под названием штрих-код
сам вудлон сравнивал его с азбукой морзы
Только вместо точек и тире здесь
используются широкие и узкие линии в
реальности же все эти полосы снова
сводятся к двоичному коду чёрный полос
это единицы белый полосы - это нули это
изобретение быстро разлетелось по всему
миру и штрихкоды стали массово
использовать для маркировки товаров по
сей день Однако нашлась одна компания
которую Это изобретение очень не
устраивало это была японская корпорация
по производству запчастей для
автомобилей deno Дело в том что
количество информации которую можно
запаковать в штрих-код довольно-таки
мало первые стандарты штрихкодов могли
хранить в себе всего 8 или 13 цифр Хотя
теоретически в штрихкод можно вместить
сколько угодно информа ци так как это
всего лишь графический элемент который
можно расширять до бесконечности правда
есть один маленький нюанс который всё
портит штрих-код одномерный то есть
высота Полос не оказывает никакого
влияния на количество данных влияние
оказывает лишь длина которая По мере
увеличения позволяет вмещать в штрихкод
всё больше и больше информации но в
этом-то и заключается вся проблема чем
больше информации нам нужно закодировать
тем больше будет в ней бит тем больше
будет линий тем больше будет длина
штрихкода которая временем либо просто
перестанет помещаться на товаре либо её
станет очень сложно сканировать
соответствующим устройством поэтому
штрихкоды как правило ограничиваются
небольшой длиной что очень сильно не
устраивало работников этой компании
которые в один прекрасный день стали
массово жаловаться что считывание
штрихкодов происходит медленно работа их
неэффективна в штрихкод не вмещается
столько информации сколько требуется для
маркировки всевозможных деталей и вообще
не очень сильно устают Как ни странно
руководство компании всерьёз отнеслось к
этой проблеме и поручил своему
сотруднику масахиро Хара из-за дела
разработки придумать более практичный
код который сможет вмещать в себя
намного больше информации что и позволит
увеличить скорость сканирования масахиро
потребовалось целых 2 года прежде чем
представить своё изобретение в свет Зато
Результат превзошёл все ожидания вместо
одномерного штрихкода был представлен
двумерный квадрат получивший название
Quick response CDE код быстрого
реагирования или говоря в просто народе
QR код количество информации которое в
него можно занести позволяет кодировать
не только текст или числа но и различные
ссылки изображения музыку и даже игры
чтобы понять Как это работает и почему
это возможно нужно разобраться с тем из
чего qr-kod вообще состоит самое первое
что нужно сделать перед его созданием -
это определиться с его свойствами первое
свойство - это версия QR кода всего
существует 40 версий от которой и
зависит итоговый размер так например
первая версия составляет всего 21х 21
модуль А каждая последующая версия
увеличивает предыдущий размер на четыре
модуля по горизонтали и вертикали В
итоге сороковая версия будет занимать
уже 177 на 177 модулей второе свойство
связано с одной интересной особенностью
QR кода которая заранее учитывалась при
его разработке считывающее устройство
сможет распознать QR код даже если тот
будет иметь повреждение Но какой
допустимый уровень этих повреждений
может быть определяется как раз-таки
вторым свойством уровнем коррекции Чем
выше будет этот уровень тем выше будет
допустимый уровень повреждения и тем
меньше информации в QR код получится
запихнуть всего существует четыре уровня
LM Q H 7 15 25 и 30% допустимых
повреждений соответственно при выборе
двух этих свойств нужно ориентироваться
на количество кодируемый данных если мы
хотим закодировать фразу Al Quest
которая состоит из семи символов то нам
подойдёт любой вариант из первого уровня
например H1 Перед тем как мы продолжим
хочу сказать пару слов о навыке которые
не просто даст вам новые знания как в
случае с QR кодом но и сделает вас более
востребованным и высокооплачиваемым
специалистам по сравнению с другими
конечно речь идёт об искусственном
интеллекте и нейронных сетях количество
компаний которая внедряют свои проекты
нейроны и сети говорит лишь о том что
это направление ещё долго будет
актуальным как для программистов
желающих повысить свою зпи расширить
Круг навыков так и для руководителей
предпринимателей желающих всесторонне
развивать своё дело минимальная зарплата
Джуна на рынке сейчас составляет в
пределах от 70 до 100.000 руб но
получить все эти знания можно в
университе искусственного интеллекта это
инновационное образовательное онлайн
учреждение через которое прошли уже
более 7.000 студентов со всего мира в
ходе обучения вы создадите себе готовое
портфолио с опытом написания тридцати
дву нейросетей и готовыми фреймворка
которые затем вы сможете презентовать
своему работодателю у ребят есть
гарантированная стажировка на реальных
проектах в крупных компаниях и
гарантированное трудоустройство
прописанной в договоре выпускники уже
смогли устроиться в такие компании как
Huawei Dell Роскосмос Яндекс и другие
чтобы определиться Подходит ли это
направление вам ребята подготовили
бесплатный трёхдневный интенсив на
котором вы создадите девять нейронных
сетей даже если у вас вообще нет навыков
программирования всё что нужно сделать -
это перейти по ссылке в описании
зарегистрироваться и получить за это в
подарок доступ к вебинару Chat gpt
создаём Нейрон без единой строчки кода
информация которую мы собираемся
закодировать в QR код какой бы она ни
была в конечном итоге в любом случае
будет представлять из себя всего лишь
последовательность бит но Каким образом
это коне конечная последовательность бит
будет получена зависит от вида
информации с которой мы работаем И от
вида кодирования который мы выберем для
QR кода представлено четыре основных
вида цифровое кодирование в котором
можно использовать только цифры от нуля
до девяти цифро буквенное кодирование в
котором можно использовать буквы цифры и
несколько таких символов байтовой
кодирование в котором все данные просто
представляются в двоичном виде и
кодирование Канти это кодирование
китайско японских иероглифов что для нас
с вами не особо актуально поэтому
сосредоточимся только на первых трёх в
цифровом кодировании вся
последовательность разбивается на
трёхзначные числа каждое такое число
переводится в двоичный вид состоящий из
10 бит Если же общее количество цифр не
было кратно трём то самое последнее
число будет состоять либо из двух либо
из одной цифры соответственно в двоичном
виде под него будет отведено либо семь
либо четыре бита потому что именно в это
количество бит вмещается максимально
возможные число каждой группы Ну О'кей
если с цифрами всё довольно понятно то
со второй группой буквенно цифровых
данных у уже не всё так просто вся
последовательность в этом случае тоже
разбивается на группы но уже не по три а
по два символа при этом в последней
группе снова может оказаться один символ
если общее количество символов не было
кратно двум далее каждый символ в этой
группе заменяется числом Согласно такой
вот таблице Затем в каждой группе мы
берём первое число умножаем его на 45 и
прибавляем к нему второе число Ну а в
конце снова переводим полученные
значения в двоичные числа состоящие из
11 бит либо состоящие из шести бит если
в последней группе было одно число
последний вид байтовой кодирования
подразумевает что мы просто представляем
данные в двоичном виде как они есть то
есть например если нам представлен текст
в кодировке utf8 то Мы просто записываем
эту последовательность бит Ну О'кей
данные в двоичный вид мы перевели но
чтобы раскодировка понять как эти данные
были закодированы мы должны где-то ему
об этом оставить знак делается это прямо
перед полученной последовательностью с
помощью одного из следующих четырёх
битовых чисел мы указываем способ с помо
которого данные были закодированы а
следом за ним мы указываем количество
этих кодируемый данных это либо
количество символов если используется
цифровой или цифро буу способ либо
количество байт если используется
байтовые кодировка Каким количеством бит
будет закодирована эта длина зависит от
версии и вида кодирования в нашем случае
это 9 бит Ну окей Все дальнейшие этапы
будут подразумевать работу с байтами
Поэтому будет удобнее если мы всю эту
битовую последовательность на эти байты
Разобьём одна Если мы посмотрим на Коли
наших бит то заметим что она не кратно
восьми Это означает что если мы разделим
все наши данные на байты то последний
байт будет неполным Поэтому в самый
конец мы добавляем столько количества
нулей Сколько потребуется для того чтобы
количество данных стало кратно восьми
хорошо мы получили 56 Бит Но из таблицы
с максимальным количеством данных мы
знаем что в H1 может поместиться 72 бита
именно до этого количества нам нужно
сейчас наши данные снова дополнить с
помощью Таких вот чередующихся ба в
итоге мы получаем 9 байт и переходим к
самой последней сложной части перед тем
как к ней приступить нужно всю
последовательность байт разбить на блоки
из данной таблицы Мы видим что для H1
требуется всего один блок поэтому
конкретно в нашем случае ничего
разбивать не нужно но на практике если
будет использована другая версия и
другой уровень коррекции то
последовательность байт разбивать
всё-таки придётся чтобы узнать
количество байт в одном блоке нужно
всего лишь разделить общее количество
байт на количество бло Однако если
результат деления окажется не целым
числом то количество байт в блоках будет
зависеть от остатка от деления Медет
остаток показывает количество последних
блоков в которых количество байт будет
на единицу больше чем в остальных То
есть если у нас к примеру есть сть
блоков и 704 байта данных то мы получаем
117,5 а в остатке отделения получаем два
Это означает что в четырёх блоках будет
находиться по 117 байт А в последних
двух будет находиться 118 Ну О'кей
каждый такой полученный блок поможет нам
сгенерировать байты коррекции которые мы
затем смешаем с данными количество этих
байтов снова зависит от уровня коррекции
и версии в нашем случае это 17 байт на
основе Этого числа по ещё одной таблице
мы получаем генерирующий многочлен и
начинаем выполнять алгоритм для каждого
такого блока в отдельности состоит он из
девяти шагов мы создаём массив нося туда
наши данные из блока Но если количество
байт коррекции окажется больше
количества байт с да то добиваем этот
массив нулями до этой длины теперь
начинаем этот массив перебирать достаём
первый элемент из этого массива и
называем его а все остальные элементы
сдвигаем влево А на последнее место
ставим ноль если а оказывается нулём то
сразу переходим к следующей итерации
Если нет то по таблице находим
соответствующее ему число b Затем
перебираем все числа генерирующего
многочлена складываем по модулю 255
текущее число с числом B получая число C
и в конце заменяем число из массива с
данными по текущему индексу на результат
операции кр Между ним и числом D которое
мы снова получаем по ещё одной таблице в
соответствии с числом C выполнив все эти
шаги для каждого блока мы получим байты
коррекции в нашем массиве При этом если
байтов коррекций по таблице 17 А
количество элементов в массиве будет
больше то байтами коррекции будут
являться только первые 17 элементов
хорошо всё что осталось сделать - это
объединить все блоки данных со всеми
блоками байтов коррекции для этого мы из
каждого блока с данными по очереди берём
их первые байты затем вторые третье и
так далее после этого проделываем то же
самое с байтами коррекции и добавляем их
в самый конец К данным в случае если у
нас был всего один блок с данными и один
блок с байтами коррекции то просто
добавляем байты коррекции в конец к
байтам с данными чтобы всё это создать
требовалось очень много тестов и это
касается любого продукта в ходе его
разработки многим из вас наверняка
требуется разворачивать запускать и
тестировать свои продукты да для для
этого сейчас существуют облачные сервисы
которые предоставляют такие услуги но мы
хотим чтобы эти услуги были не только
качественными но и бесплатными Особенно
если это что-то тестовое так вот
наконец-то у нас появилась такая
возможность благодаря провайдеру Cloud
ru Cloud ru - это Лидер на рынке
облачных сервисов и ai технологий ребята
собрали крутую команду из более чем
полутора тысяч профессионалов в области
it кибербезопасности искусственного
интеллекта а совсем недавно они
запустили fre tire это объём облачных
ресурсов которые мы можем получить
бесплатно и навсегда что сюда входит
Первое - это виртуальная машина с
двухъядерный виртуальным процессором 4
ГБ оперативной памяти 30 Гб SSD диска
второе - это объектное хранилище сюда
входит 5 Гб облачного хранилища и
бесплатная операции для загрузки данных
любого типа все эти сервисы расположены
на платформе Cloud R Evolution это
публичное защищённое Облако на базе
собственных разработок и свободно
распространяемых компонентов провайдер
собирает платформу силами только своей
команды пишет детальную документацию и
делает простой интерфейс на русском
языке Если вы новый пользователь этой
платформы то вы получите ещё и 4.000
бонусов За регистрацию по Сбер ID или
привязку карты один бонус равняется
одному рублю И ими можно оплачивать
любые сервисы это актуально Потому что
если вы хотите с вашей виртуальной
машиной выйти в интернет то Придётся
приобрести публичное IP за которой можно
будет расплатиться бонусами переходи по
ссылке в описании регистрируйся в личном
кабинете и начинай использовать
платформу Cloud именно в таком виде мы и
будем размещать наши данные в QR коде но
чтобы это сделать Сперва нужно
разобраться со
вспомогатель одним модулем мы называем
один такой квадратик первая проблема с
которой мы сразу же сталкиваемся - это
то что qr-kod имеет квадратную форму
Дело в том что считывающего устройству
нужно определить где у этого квадрата
верх где низ где право А где лево
Поэтому в QR добавляется три специальных
одинаковых квадрата в два верхних и в
один Левый нижний угол состоит такой
квадрат из чёрных модулей 3х 3 которые
окружены белой рамкой из одного модуля и
чёрной рамкой тоже из одного модуля
Кроме этого у них имеется ещё и белая
рамка в местах не прилегающих границы
квадрата именно по этим квадратам
считывающее устройство и определяет
расположение qr-kod Но при условии что
QR код будет в идеальном для считывания
положений но как мы знаем QR код может
быть мятый неровный иметь повреждения и
так далее поэтому для корректного
считывания данных используются
дополнительные модули например квадраты
выравнивания добавляются они в
18 от левого верхнего модуля а 622 и 38
в седьмой версии соединившись каждая с
каждым даст нам девять координат для
девяти квадратов при этом выравнивающие
квадраты не должны перекрывать квадраты
расположения То есть например в седьмой
версии квадратов в координатах 66 638 и
386 быть не должно О'кей следующий
вспомогательный модуль для корректного
сканирования - это полосы синхронизации
начинаются они после белой рамки справа
и снизу напротив правого нижнего чёрного
модуля левого верхнего квадрата и
представляют собой чередующиеся чёрные и
белые модули до белых рамок
противоположных квадратов начиная с
седьмой версии в QR код заносится ещё и
номер этой версии это специальный код
состоящий из нулей и единиц где чёрный
модуль - это единица А белый модуль -
это ноль всё это двоичное число
разбивается на три части и размещается в
виде строк над нижним левым квадратом и
в виде колонок слева от верхнего правого
квадрата последнее что осталось сделать
перед тем как приступить к размещению
данных это добавить в qr-kod код уровня
коррекции и код маски они как и версия
QR кода дублируется в двух местах первый
возле верхнего левого квадрата по
направлению слева направо снизу вверх а
второй разрывается на две части первая
часть размещается справа от Нижнего
левого квадрата снизу вверх а вторая под
верхним правым квадратом слева направо
при этом над первой частью по умолчанию
располагается чёрный модуль если с кодом
уровня коррекции мы знакомы то что такое
код маски это код которая определяет
формулу на основе которой будут
инвертировать биты наших подготовленных
данных какую формулу лучше выбрать
зависит от самих данных мы не будем на
этом останавливаться а Посмотрим как эта
маска вообще работает например код маски
с номером два предлагает нам вычислить
остаток отделени X на 3 x - это номер
модуля слева направо начиная с нуля если
мы произведём подобные вычисления для
всех модулей по оси X нашего QR кода то
Увидим в каких модулях результат
вычисления даст ноль А в каких даст
больше нуля так вот там где получится
ноль бит и будет инвертировать то есть
если там был ноль то станет единица А
если была единица то станет ноль чтобы
было нагляднее мы произведём это
инвертирование уже после того как
разместим оставшиеся данные если мы
закроем все участки которые отведены под
вспомогательной закодированных данных
мезона позволяет вместить в себя 208 бит
72 из которых - это наши данные плюс
способ кодирования длина данных и
чередующиеся байты а 136 - это байты
коррекции для удобства всё это
пространство мы Разобьём на Столбцы
шириной в два модуля единица - это
по-прежнему чёрный модуль ноль
по-прежнему белый размещать мы начинаем
их от правого нижнего угла QR кода в
виде такой вот змейки каждый раз доходя
до верха мы направляемся к левому краю
следующего столбца и продолжаем
размещать той же самой змейкой только
уже по направлению вниз а доходя до низа
Мы точно также переходим к левому краю
следующего столбца и отправляемся
змейкой вверх таким образом разместив
все наши данные Остаётся только наложить
на них нашу маску и инвертировать цвета
тех модулей в которых остаток отделения
даст ноль самое последнее что осталось
сделать чтобы qr-code заработал - это
добавить вокруг него обязательную
двухмоторный шумов которые могут
находиться вокруг него чтобы сканер
случайно не взял их в качестве данных
если мы теперь попробуем просканировать
этот код то получим название моего
канала alos подписывайся в Telegram
канал по ссылке в закреплённой
комментарии чтобы не пропускать выход
полезного контента увидимся в следующих
видео
Voir Plus de Vidéos Connexes
Add webpack and TypeScript to a Chrome extension (2024)
Я отдал 5 лет за эти 12 минут. (Осознания миллионера)
Fiio KA13 Review 550 mw 😲🔥
Илья Суцкевер . Увлекательный и опасный путь к Общему ИИ (AGI). Дублированный перевод
또 다른 가성비 강자? 7만원에 느끼는 고급스러운 중역의 맛 QOA GIMLET
Проповідь архієпископа: будьте вільними
5.0 / 5 (0 votes)