Чтение qr кода онлайн. Сканирование QR-кода на Android-девайсах

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

В первую очередь, для того чтобы приступать к штурму кода, необходимо разобраться, каким именно образом происходит шифрование. Существуют несколько типов кодирования данных:

  • числовой (цифры 0-9);
  • альфачисловой (цифры 0-9, буквы A-Z, спецсимволы: пробел,$ % * + — / :);
  • битовый;
  • Кандзи (файлы упаковываются в 13 бит);

Как расшифровать QR код?

Вся информация в коде разбивается на блоки. Их можно условно разделить на 4 типа:

  1. область детектирования, то есть преобразовывающий модуль (расположенные по углам кода большие отчетливые квадраты, внутри которых находится еще один черный квадрат). Эта область не несет полезной информации с точки зрения расшифровки данных;
  2. системная информация. Она представляет собой две полосы данных, которые дублируются по 2 раза (итого 4 полосы, расположенных сбоку, справа и снизу от блоков детектирования);
  3. информация о версии кода. От версии кода зависит максимальное количество данных, которое можно зашифровать. Чем выше версия, тем сложнее данные расшифровать вручную. Иногда это просто не целесообразно. С повышением версии, количество блоков в коде будет больше. То есть между преобразовывающими модулями по краям пространство будет заполнено плотнее;
  4. непосредственно данные.

Шаг 1.

Интерес, с точки зрения расшифровки информации, представляет только одна строка системного кода. Она находится сразу под левым верхним преобразовывающим модулем. Тут находится 5 бит информации.

Теперь нужно вспомнить двоичную систему счисления и записать данные в этой строке. Итак, смотрим на строку (строка заканчивается под левым верхним преобразовывающим модулем) и записываем 0 на пустом месте и 1 на заполненном. Нас интересуют только первые 5 бит информации. Таким образом, получаем строку из 5 цифр (например 10111).

Шаг 2.

Теперь применяем маску к системной информации. Маска — это дополнительный способ защиты информации. Она имеет вид: 101010000010010. Поскольку мы работаем только с 5 битами информации, то и маску сокращаем соответственно. Оставляем первые 5 цифр и получаем 10101. Теперь к нашим 5 битам применяем маску с помощью операции исключающего или (XOR).

Например: 10111 XOR 10101 = 00010

Полученную строку с данными стоит разделить на 2 части. Первые 2 цифры — это уровень коррекции ошибок. В таблице ниже можно ознакомится с их типами.

где i — строка, j—раздел.

Шаг 3.

Переходим к заголовку данных в коде. Заголовок находится в правом нижнем углу. Мысленно выделяем прямоугольник 2×12, который располагается с краю справа и направлен вверх. Запомним его расположение, он нам понадобится при непосредственном чтении данных.

Теперь определяем режим данных. Для этого опять используем двоичную систему. Опускаемся к основанию нашего воображаемого прямоугольника и записываем 0 в белых и 1 в черных клетках, двигаясь змейкой снизу вверх, справа налево. Для заголовка нам достаточно обработать область 4×4. Получаем строку из 4 цифр.

Например: 0100

Список возможных режимов приведен ниже:

Итак, данная в примере строка с цифрами соответствует данным из 8 битов. Независимо от получившегося типа данных, к ним нужно опять применить маску. Маска в данном случае будет для каждого типа своя. Например, для 8-битного типа данных она будет 0000, для численного - 0110. Вычислять маску можно по приведенным выше формулам.

Опять применяем к вычисленным данным маску с помощью оператора XOR.

Например 0100 XOR 0000 = 0100

Шаг 4.

Приступаем к чтению данных. Данные записаны в нашей прямоугольной области 2×12, начиная с 3-й строки (первые 2 строки- заголовок данных). Строки мы читаем снизу вверх. Итак, переводим в двоичный код всю оставшуюся область прямоугольника. Двигаемся змейкой справа налево. Получаем ряд из 20 цифр. Применяем маску с помощью оператора XOR. Для 8-битного типа данных полная маска будет 0000 0000 0000 0000 0000, для численного- 0001 1000 0110 0001 1000. (Вычисляем маску по приведенным выше формулам).

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

Это значит, что для 8-битного типа данных мы отделим первые 8 цифр, а для числового, например, 10. Получившийся ряд цифр переводим в десятичную систему. Получившееся число — количество пакетов данных. Если получаем 1 — это значит, что зашифрован 1 символ. Расшифровать его можно, переведя из двоичной системы следующие 4 цифры в оставшемся ряду.

Если полученное число пакетов больше, чем 1, то приступаем к дальнейшей расшифровке. Для этого переходим к чтению следующего столбца. Мысленно выделяем область 2×12 слева от первого выделенного прямоугольника. Переводим его в двоичный код, используя тот же принцип «змейки». К получившемуся ряду цифр применяем маску, вычисленную с помощью приведенных выше формул, с помощью оператора XOR. Далее для расшифровки ряда цифр делим его на группу из 8, 9 или 10 цифр (ряд читать справа налево), в зависимости от режима чтения (таблица представлена выше). Переводим каждую группу из двоичной системы. Для численных значений используем перевод в десятичную систему. Для перевод 8-битных данный используем таблицу кодировки ASCII.

QR-код является современным аналогом штрих-кода. Если по одномерной шифровке обычному пользователю удастся узнать разве что информацию о стране-производителе того или иного товара, то двухмерный код может содержать в себе различные инструкции, ссылки на скачивание, адреса сайтов и т.п. Большая популярность такого представления данных привела к тому, что на Android появились специальные программы, умеющие считывать QR шифры. Рассмотрим, как пользоваться QR кодом на Андроиде.

Чтобы считать QR шифр с того или иного источника, вам потребуется смартфон или планшет на базе ОС Android с интегрированной камерой, а также специальная утилита (сканер), умеющая распознавать и обрабатывать информацию, представленную в зашифрованном виде.

Софт, читающий QR коды, в сети представлен в большом количестве. Его без проблем можно скачать как с проверенных источников (например, с Play Market), так и со сторонних ресурсов. Однако наибольшее распространение и положительные отзывы получили следующие программы-сканеры:

Давайте разберемся, как сканировать QR код на Андроиде каждым из этих приложений.

Считывание QR шифра программой QR Droid

Чтение QR кода на Android с помощью данной утилиты производится следующим образом:

После распознавания шифра в отдельном окне высветится информация, которая была в нем закодирована, и возможные варианты дальнейших действий. Так, если к гаджету подключен интернет и вы хотите сразу же открыть ссылку, кликните Open. Для копирования ссылки, например, в браузер, нажмите Copy. Чтобы отправить данные на удаленное устройство, тапните Share.

Если вам требуется произвести считывание QR кода для Андроида не с реального объекта, а с картинки, сохраненной на смартфоне, в начальном окне программы нужно выбрать Decode saved QR image. Для считывания шифра с интернет сайта, нажимаем по кнопке, указанной на рисунке.

Использование программы QR&Barcode Scanner

Рассматривая, как сканировать QR коды на Андроиде, нужно выделить приложение QR&Barcode Scanner, которое умеет распознавать не только двумерные, но и одномерные шифровки. Еще одним преимуществом данного софта является то, что с его помощью можно генерировать свои коды, содержащие различный текст, SMS сообщения, адреса сайтов, заметки с календаря и т.п.

Программа работает следующим образом:


Создание своего QR шифра выполняется в разделе «Генерирование».

Для того чтобы считать 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
  • Tutorial

Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.

Для тех, кто не в курсе что такое QR код , есть в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти поиском .

Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online-генераторе QR Coder.ru .

Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе 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-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:

Список возможных режимов:

P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

P.P.S. Если ошибся блогом, то подскажите куда - перенесу.

Теги:

  • QR код
  • код Рида-Соломона
Добавить метки

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

История создания

Итак, что же подразумевает под собой подобного рода шифр? Все очень просто: QR - аббревиатура слов Quick Response, что в переводе с английского языка означает «быстрый отклик» или «быстрый ответ». А QR-код - это так называемый двумерный штрих-код, который был разработан и представлен в 1994 году японской компанией, именуемой Denso Wave. QR-код, расшифровать который после прочтения данной статьи не составит большого труда, стал нужен в силу того, что японским компаниям не хватало объема информации, которую можно заложить в обычный одномерный штрих-код.

Процесс распознавания

Если взглянуть на код формата quick response, можно увидеть квадрат с воображаемыми невидимыми сторонами, внутри которого расположены другие четырехугольные фигуры разной длины и размеров. Именно в них и заложена вся текстовая информация, зашифрованная в двумерный код.

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

Преимущества использования

Первое заметное отличие шифра quick response от обычного штрих-кода - это которое можно в нем разместить. Тогда как «штрих» поддерживает лишь цифровые символы, QR позволяет закладывать в себя буквы, слова и целые предложения.

Если взять самый большой QR-код, расшифровать на «Андроид» или на компьютере, то можно увидеть, что максимальное количество цифр, содержащихся в шифре, - 7089. Кроме того, на латинице в него можно поместить до 4296 цифр и букв. Если же говорить о то количество возможной заложенной информации чуть меньше - 2953 байта.

Популярность

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

Позднее, в середине 2000-х, при появлении первых смартфонов с камерой, а после них - Apple iPhone и других более современных девайсов, QR-код снова начал набирать популярность. Все дело в том, что приложения, считывающие шифр с помощью камеры устройства, также могут делать это в считаные секунды. Причем информация, содержащаяся в QR, может в полной мере передавать ссылки, письма, SMS, контакты и даже изображения JPG и GIF размером до 4 кб. Последние, к слову, не прижились в современном мире и применяются очень редко.

Как QR-код расшифровать

Android- и iOS-смартфоны уже давно имеют огромное количество приложений, предназначенных для распознавания двумерного шифра. Самое главное требование - наличие камеры с хорошим разрешением и, желательно, автофокусом. Дело в том, что для расшифровки кода требуется четкое изображение, так что дешевый смартфон с камерой в 2 мегапикселя без автофокуса, скорее всего, не сможет считать информацию. Но представим идеальные условия, когда смартфон достаточно хороший, а камера, соответственно, с высоким разрешением и фокусировкой.

Если просто включить приложение камеры и навести на QR-код, естественно, ничего не выйдет, и шифр не распознается. Все потому, что для считывания нужно специальное приложение-дешифратор. Где его взять? В данном случае все тоже очень просто: подобными приложениями полны различные магазины мобильных приложений, такие как AppStore на iPhone и Play Market на Android. В строке поиска последних стоит ввести запрос «сканер QR-кода» или же просто «сканер QR». После появления результатов следует выбрать любое приглянувшееся приложение, установить и запустить его. На интересующий QR-код наводят камеру с любой стороны и под абсолютно любым углом. Приложение само выводит нужную информацию на дисплей. К примеру, если это будет ссылка на веб-сайт, автоматически запустится по умолчанию установленный браузер с уже открытой страницей.

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

Где используются QR-коды

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

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

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



Просмотров