Что такое QR-код? Читаем QR код


Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме. В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин. Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов.
Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем, в виду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, что описаны ниже, можно адаптироваться и к этим режимам. На случай некорректного чтения данных в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации. «Перемешанные» данные записываются в особой последовательности на шаблонную картинку, куда добавляется техническая информация для декодирующих устройств. Исходя из описанного алгоритма, можно выделить схему извлечения данных из QR кода:
Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет реализовать при непосредственном чтении кода. Остальные пункты можно опустить в виду того, что считывание производит человек.

Шаг 0. QR код


Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь: По ним можно сориентироваться и понять какая версия QR перед вами. Коды высоких версий обычно также нецелесообразно считывать вручную. Размещение системной информации показано на рисунке:
Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 – это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, в добавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010 . Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять-сто один). После применения операции «исключающего или» (xor) получаем информацию. Возможные уровни коррекции ошибок:
L 01
M 00
Q 11
H 10
Возможные маски:
000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:
Список возможных режимов:

Шаг 4. Применение маски к заголовку

После извлечения 4-х бит, описывающих режим, необходимо к ним применить маску.
В нашем случае для двух кодов используются разные маски. Маска определяется выражением, приведённым в таблице выше. Если данное выражение сводится к TRUE (верное) для бита с координатами (i,j) , то бит инвертируется, иначе всё остаётся без изменений. Начало координат в левом верхнем углу (0,0) . Взглянув на выражения, можно заметить в них закономерности. Для рассматриваемых QR кодов, маски будут выглядеть так: Получим режимы:

Шаг 5. Чтение данных

После получения данных о режиме можно приступать к чтению информации. Надо оговорить, что наиболее интересно считывать числовые и буквенно-числовые данные, так как они легко интерпретируются. Но также не стоит бояться 8-битных. Это может быть также легко интерпретируемая информация. Например, многие онлайн генераторы QR текст кодируют в этом режиме, используя . Ещё одна причина, почему следует изначально прочитать режим это то, что от него зависит количество пакетов данных. Которая также зависит и от версии кода. Для версий с первой по девятую длины блоков для более читабельных режимов: Первый блок после указателя режима – это количество символов. Для числового режима количество закодировано в 10 следующих битах, а для 8-битного режима в 8 битах (прошу прощения за тавтологию).
На рисунке видно, что в левом QR коде, как и отмечалось, записана цифра 5. Это видно по указателю количества символов и последующим после него 4 битам. В числовом режиме наряду с 10-битными блоками используются 4-х битные блоки для экономии места, если в 10-битном объёме нет необходимости. В правом коде, зашифровано 4 символа. На данный момент неизвестно, что зашифровано в нём. Поэтому необходимо перейти к чтению следующего столбца для извлечения всех 4-х блок информации.
На рисунке видно, все 4 пакета представляют собой коды ASCII латинских букв, образующие слово «habr» Естественно наилучшим способом остаётся достать телефон из кармана и, наведя камеру на QR-картинку, считать всю информацию. Однако в экстренных случаях может пригодиться и описанная методика. Конечно, в голове не удержишь все указатели режимов и типов масок, а также ASCII символы, но популярные комбинации запомнить (хотя бы те, что рассмотрены в статье) под силу.

Спецификация:

BS ISO/IEC 18004:2006. Information technology. Automatic identification and data capture techniques. QR Code 2005 bar code symbology specification. London: BSI. 2007. p. 126. ISBN 978-0-580-67368-9. P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

Для того чтобы считать QR-код, вам прежде всего понадобится мобильный телефон со встроенной фотокамерой. Однако только его недостаточно – необходимо, чтобы на устройстве был установлен QR reader – специальная программа, предназначенная для расшифровки двоичных кодов. Этих программ – огромное множество, и их выбор зависит от нескольких критериев. Прежде всего, необходимо ориентироваться на тип операционной системы, поддерживаемой Вашим устройством. На сегодняшний день декодирующие программы разработаны для большинства телефонных «операционок» – есть специальное обеспечение и для Mobile MAC OS X, и для Windows Mobile, и для Google Аndroid, а также для Symbian и BlackBerry; существуют и отдельные программы, приспособленные для компьютерных версий Apple, Linux и Windows.

Выбирая программу, способную производить считывание QR-кода, следует учитывать и модель мобильного устройства, на которое ее предстоит установить. Также имейте в виду, что «ридеры» могут различаться наличием дополнительных функций. Отдельное внимание следует обратить на то, поддерживает ли конкретная программа для расшифровки QR-кода Unicode – это бывает не всегда.

Когда программа установлена, можно осуществлять чтение QR-кода. Процесс этот не представляет сложности даже для того, кто делает это в первый раз – необходимо лишь соблюсти пошаговую инструкцию:

  1. Запустите программу, при помощи которой планируется распознать QR-код.
  2. Дождитесь активации фотокамеры вашего мобильного устройства.
  3. Наведите фотокамеру на QR-код. При этом соблюдайте одно из важных условий: если двоичный код небольшой, камера должна находиться на расстоянии 15 см от него.
  4. Отрегулируйте размер и четкость изображения на экране. Для этого используйте цифровой зум, которым оснащены все современные фотокамеры в мобильных устройствах. После регулировки изображения QR-код должен находиться по центру экрана и иметь четкие очертания.
  5. Ожидайте. Проанализировав QR-код, «ридер» самостоятельно выдаст вам информацию о его содержимом. Если этого не произошло, нажмите на кнопку Snapshot, чтобы произвести активацию сканера.
  6. Если ничего не изменилось, повторите попытку, при помощи зума поменяв расстояние до сканируемого QR-кода.

Для того чтобы успешно расшифровать QR-код, соблюдайте следующие правила:

  • Следите за освещением.
  • Обеспечьте максимальную неподвижность телефона во время расшифровки QR-кода – тряска способна воспрепятствовать процессу сканирования.
  • Мобильное устройство должно находиться под прямым углом к одной из сторон QR-кода.
  • Телефон необходимо держать на одной высоте с двоичным кодом.

Как только сканирование завершено, на экран устройства будет выведено предложение совершить какое-либо действие, зашифрованное в QR-коде – это может быть отправка sms или email, переход по ссылке, команда совершить звонок, сохранить контактные данные, опубликовать что-либо в социальной сети и т.п.

Операционная система Модели телефонов Программы для распознавания
Windows Mobile Все современные модели HTC, Asus, Acer
Mobile Mac OS X Модели: Apple iPhone, Apple iPhone 3G
Mobile Java Все телефоны, поддерживающие Java
Android Все современные модели Android
Symbian OS V9 Модели: Nokia 3250, Nokia 5500, Sport Nokia E50, Nokia E5, Nokia E60, Nokia E61, Nokia E61i, Nokia E62, Nokia E65, Nokia E70, Nokia N71, Nokia N73, Nokia N75, Nokia N77, Nokia N80, Nokia N91, Nokia N91 8GB, Nokia N92, Nokia N93, Nokia N93i, Samsung SGH-i570

Скорее всего на вашем телефоне уже установлен по умолчанию сканер QR-кода, вы можете легко с его помощью просканировать первый QR-код. Сделать это очень легко. Просто следуйте нашей инструкции.

1. Откройте устройство чтения QR-кода на своем телефоне.

2. Держите устройство над QR-кодом так, чтобы он был хорошо виден на экране вашего смартфона.

Если вы правильно держите смартфон над QR-кодом, то в таком случае произойдет следующее:

  • Телефон автоматически сканирует код.
  • В некоторых приложениях для сканирования кода вы должны нажать на изображение, а не на кнопку как для создания фото на вашем смартфоне.

3. Нажмите указанную кнопку, если потребуется.

Супер! Ваш смартфон считывает код и переходить по заданной ссылке, что не всегда происходит мгновенно. На большинстве устройств это может занять несколько секунд.

Вы начнете видеть QR-коды повсюду. Они используются для обучения, информирования, объяснения и для многих других вещей. Находите их и сканируете! QR-коды сэкономят вам много времени и усилий.

Как сканировать QR-коды на Android

А теперь мы расскажем вам, как использовать приложение сканирования для QR-кодов на Android.

Кратко:
1. Откройте Play Маркет .
2. Поиск считывателя QR-кода .
3. Выберите QR Code Reader (через Scan).
4. Нажмите «Установить» .
5. Откройте программу чтения QR-кода .
7. Направьте камеру на QR-код.
8. Нажмите «ОК» .

Шаг 1 . Откройте Play Маркет на Android. Это значок в приложении или на главном экране.

Шаг 2. Введите считыватель QR-кода в поисковике. Появится список приложений для чтения QR-кода.

  • Эта статья объясняет, как использовать QR-код Reader, но вы можете выбрать то, приложение, которое вам понравится. Просто не забудьте прочитать о приложении перед загрузкой.
  • Шаги должны быть одинаковыми для всех приложений чтения QR-кода.

Шаг 3. Нажмите QR Code Reader, разработанный Scan. Имя разработчика указано ниже каждого приложения. Возможно, вам придется прокрутить страницу вниз, чтобы найти приложение, сделанное Scan.

Шаг 4. Нажмите « Установить» . Появится всплывающее окно с просьбой предоставить разрешение для доступа к информации на вашем Android.

Шаг 5. Нажмите «Принять» . QR-код Reader теперь будет установлен на вашем Android-устройстве.

    • Когда приложение будет загружено, кнопка «Установить» смениться на «Открыть», и у вас появится новый значок в приложении.

Шаг 6. Откройте QR Code Reader. Это значок, который похож на QR-код в приложении. Откроется приложение, которое выглядит как стандартный экран камеры.

Шаг 7. Выровняйте QR-код в кадре камеры. Немного похоже на то, как вы делаете фотографии, за исключением того, что вам не нужно нажимать какие-либо кнопки. Когда сканер штрих кодов прочитает код, появится всплывающее окно с URL-адресом в коде.


Шаг 8. Нажмите «ОК», чтобы открыть веб-сайт. Это запускает ваш веб-браузер по умолчанию и перемещается по URL-адресу в QR-коде.

QR-код — это штрих-код, разработанный и представленный японской компанией Denso-Wave в далеком 1994 году. QR-коды в последнее время стали популярны и в нашей стране. С помощью штрих-кода можно зашифровать достаточно много информации, например, какой-нибудь адрес или веб-ссылку. Для того, чтобы считать информацию, достаточно иметь под рукой смартфон или планшет с камерой. Сегодня мы покажем вам, как считывать такого рода коды на Android-устройствах.

Первым делом вам необходимо будет скачать сканер для штрих-кода. Каким из них вы будете пользоваться, решать только вам — их в Google Play Маркет очень много. Просто наберите в поиске словосочетание «qr-код» (без кавычек) и выбирайте на здоровье. Мы воспользовались QR Code Reader. Кстати, вполне возможно, что в вашей прошивке уже есть сканер QR-кодов.

Чтобы его считать, нам нужно запустить скачанное приложение и запустить его. После запуска вы увидите изображение с камеры — не пугайтесь, так и положено. При наведении камеры на QR-код приложение автоматически его считает, то есть вам не нужно нажимать на дополнительные кнопки. При этом вы сразу увидите скрытое в коде описание.

Собственно, на этом все. Устанавливайте приложение и сканируйте QR-коды, что вам встречаются. Возможно, в них вы найдете что-то интересное.

Как отсканировать QR код на Андроид для разных целей (подключения Wifi, авторизации в мессенджерах Viber, Whatsapp, просмотра товаров на Aliexpress) мы подробно рассмотрим в этой публикации. Разберем как встроенные возможности Android, так и сторонние приложения.

Уверен, что многие из Вас нередко встречают подобные «рисунки» в интернете, на рекламных объявлениях, упаковках товаров и т.д.:

Так вот, мы имеем дело с таким понятием, как «Quick Response Code », которое было создано для японского автопрома, но спустя время обрело популярность во всём мире. «Кью Ар » - это разновидность штрихкода, где с помощью уникального расположения и размеров черных блоков шифруется практически любая информация – ссылки на сайты, текстовые описания, географические координаты, данные о заказе и оплате.

Технология имеет настолько широкую область применения, что перечислять можно часами напролёт. К примеру, недавно я приобрел VR-очки для смартфона Сяоми, и чтобы не искать специальное приложение в Плей маркете, достаточно было отсканировать QR на упаковке и сразу перейти к скачиванию софта.

Процедура считывания занимает несколько секунд, и необходимым условием является подключение к глобальной сети Internet. Давайте подробно рассмотрим инструменты.

К сожалению, не все смогут ими воспользоваться. Старые версии ОС, установленные на телефонах старше 5 лет, вряд ли поддерживают такой способ. А вот более современные прошивки справляются с задачей практически на автомате.

К примеру, на моём Xiaomi Redmi Note 4 есть стандартное приложение «Сканер ». Кроме того, достаточно просто включить камеру и навести её на код QR, чтобы появилась кнопка «Подробнее… », а уже в новом окне увидите ссылку (или прочую информацию):

Опять же, всё зависит от Android и установленной оболочки - в MIUI (в Сяоми/Ксиаоми) и Flyme (для Meizu) эти функции реализованы, хотя в последнем случаем необходимо выбрать соответствующий режим съемки:

Попробуйте поискать у себя нечто подобное, покопайтесь в настройках. Если не найдете – переходите к перечню полезных утилит.

Как отсканировать QR код на Android сторонними программами

В официальном магазине Google Play по данному запросу можно найти множество софта, с помощью которого производиться распознавание кодов разного типа. Но следует использовать только ПО с высоким рейтингом, желательно выбирать варианты без рекламы (хотя таких мало). Я подготовил перечень, актуальный на 2018 год. Возможно, в будущем появятся решения более продвинутые. Хотя, что нового может предложить утилита подобного назначения?

  • Молния сканер ;

Не буду конкретно описывать интерфейс и возможности каждого инструмента, поскольку они идентичны, имеют одинаковый принцип работы, а именно:

  • Подключаетесь к интернету (мобильному или Вай фай);
  • Запускаете приложение;
  • Выбираете режим (если предлагается);
  • Когда на экране отобразится квадрат, следует навести камеру на нужный элемент, который хотите отсканировать;
  • Спустя пару секунд будет найден результат и увидите на дисплее информацию;
  • Далее можно перейти на сайт (если получили ссылку), прочитать описание, поделиться в социальных сетях (мессенджерах), скопировать для последующей вставки в заметки и т.д.