Сканер квадратных кодов. Читаем QR код

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

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

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

Эти коды представляют собой миниатюрные носители данных, которые хранят текстовую информацию объемом в половину страницы А4 формата. При помощи белых и черных квадратов эти данные кодируются. Тогда как расшифровка осуществляется посредством специальных сканирующих устройств. То есть используется тот же принцип, что и в компьютерной технике. Их объединяет следующее правило: определенному сочетанию квадратов соответствует конкретное значение (к примеру, число или буква).

QR-коды могут быть выполнены и в других цветах. Главное, чтобы между темными и светлыми участками был четко выраженный контраст.

QR (Quick Response) в переводе означает «быстрый ответ».

Примеры использования QR-кода

Данные Антона Козлова – главного блога http://сайт (имя, е-мейл, ICQ, Skype)

Появление QR-кода

Разработала QR-код в 1994 году японская фирма Denso Wave, которая является одной из компаний Toyota. Его появление было обусловлено повышенными требованиями к машиночитаемым кодам, предъявляемыми японской промышленностью в 80-х годах. Задача QR-кодов заключалась в хранении большого объема данных при небольшой площади их размещения. Тогда как процессу сканирования не должны препятствовать ни повреждение, ни частичное загрязнение кода.

Предназначение QR-кодов

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

Любой смартфон может распознать и расшифровать данную информацию. Только вам понадобится программа для распознавания QR-кода. А после ее установки и запуска нужно просто поднести камеру смартфона (или телефона) к коду. За считанные секунды QR-код программа его расшифрует, а затем предложит выполнить определенное действие. В случае утвердительного ответа, к примеру, запуститься ваш интернет-браузер и загрузит страницу в интернете.

Также QR-код можно расшифровать онлайн при помощи специальных интернет-ресурсов.

Принцип устройства QR-кодов

Они всегда выполнены в форме квадрата. Матрица с замысловатым рисунком является сердцем кода. А квадраты и черные линии содержат информацию, хранящуюся в модулях. Тогда как количество модулей напрямую связано с объемом данных, предназначенных для хранения. Самый маленький код (21х21) включает в себя 441 модуль (версия 1), а самый большой QR-код (177х177) – 31 329 модулей (версия 40).

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

Расположение информации

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

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

Размер QR-кода

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

Но при этом они не должны быть слишком маленького размера. В этом случае сканирующие устройства (к примеру, телефон с камерой) попросту не сфокусируются на коде, а, соответственно, не расшифруют его содержимое. Если код содержит всего один адрес сайта, длина каждой его стороны должна быть 2,5 см, но не меньше.

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

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

Тем не менее, не каждая такая QR-код программа распознает все форматы. К числу наиболее распространенных форматов можно отнести:

  • Контактные данные, которые могут наноситься, к примеру, на визитки. Это способствует упрощению использования персональных данных, так как вы попросту сканируете QR-код, а после сохраняете контакты на компьютере или в телефоне.
  • SMS сообщения, которые могут потребоваться для участия в акции. Тогда благодаря QR-коду исчезает необходимость набора текста. Понадобится лишь программа для считывания QR-кодов, которая позволит увидеть на дисплее телефона (смартфона) уже готовое сообщение.
  • Интернет-адрес, который может содержаться в рекламных объявлениях и газетах. Благодаря этим ссылкам пользователь попадает на нужный ему сайт без самостоятельного ввода в адресную строку множества знаков. К примеру, на веб-ресурсе может содержаться описание продукта или же информация, которая дополняет ту, что имеется в газетной статье.
  • Адрес электронной почты. При этом не нужно вводить данные вручную, так как отправить письмо можно простым нажатием на кнопку. Такие QR-коды могут использоваться для получения информации или же участия в розыгрышах. Также можно считать и имя адресата.
  • Телефонные номера. Благодаря таким кодам можно сразу же позвонить. Но такая возможность предоставляется лишь тем владельцам телефонов (смартфонов), QR-код программа которых поддерживает такую функцию.
  • Геоданные, позволяющие посмотреть расположение необходимого объекта, к примеру, в картах Google.
  • Текст. Такой формат подойдет для различных целей. Например, для нанесения на проездные (или входные) билеты, а также хранения коротких стихотворений и текстов.

Разные QR-коды можно найти в различных журналах, например, Chip, ComputerBild. Редакция последнего журнала предоставляет их для упрощения загрузки разного рода программ. Также ComputerBild предоставляет коды для загрузки программ на смартфоны на бесплатной основе. Более того, ими было разработано собственное приложение кодов для iPad, iPod Touch, Apple iPhone и для телефонов с управлением Android. Для этого необходимо ввести фразу «COMPUTERBILD Code Leser» на сайте интернет магазина Android Market.

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

Программы для распознавания QR-кодов

Программы для считывания QR-кодов для iPhone и iPAd

Bakodo — http://itunes.apple.com/app/bakodo-barcode-scanner-qr/id371932548


Scan — http://itunes.apple.com/app/scan/id411206394

Программы для считывания QR-кодов для Android

Barcode Scanner — https://market.android.com/details?id=com.google.zxing.client.android
Эта программа вошла в .

QuickMark Lite QR Code Reader — https://market.android.com/details?id=tw.com.quickmarklite

Программы для считывания QR-кодов для различных платформ

QuickMark QR Code Reader — http://www.quickmark.com.tw/En/basic/downloadmain.asp


i-nigma — http://www.i-nigma.com/Downloadi-nigmaReader.html


Создание QR-кода

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

Если вы хотите понять принцип их создания, то для начала воспользуйтесь бесплатными сервисами, которые можно найти в интернете. К примеру, www.qrcoder.ru.


Перейдите на сайт, где будет загружена маска для ввода QR-кода в текстовом формате. Чтобы изменить формат, нажмите на соответствующую ссылку и введите текст. После того как подтвердите выполнение действия, на экран будет выведен ваш QR-код. Для его сохранения в виде файла на диске (формат GIF) кликните мышью (правой кнопкой) и выберете пункт «сохранить изображение как…». После ввода пути к нужной папке работа над созданием QR-кода закончена. Его можно как распечатать, так и отправить по почте.

Также можно сохранить QR-код и в других форматах (JPEG, PNG или TIFF). В этой связи вы получаете множество возможностей для его использования. Его также можно опубликовать в интернете или применить в виде экранной заставки, которая, например, будет содержать фразу «Передохни!».

Хорошим сайтом для создания QR-кода является также http://www.qrmania.ru.

Краткий экскурс в историю

  • Позиционирование . Это метка, расположенная в трех углах рисунка, позволяет устройству распознать положение кода и начинать процесс сканирования быстрее. Качество распознавания связано с шириной белой рамки вокруг кода.
  • Синхронизация . Это пунктирная линия, задающая модель матрицы, и находящаяся между тремя позиционными метками.
  • Направление . Эта метка помогает сканер-устройству определить, имеется ли в изображении кода искажение перспективы. Чем код больше, тем больше содержание в нем таких меток.
  • Формат . Посредством такого рода информации устройство может определить формат данных, который используется в данном случае (ссылка, номер телефона и т.д.).
  • Номер версии . По настоящий день всего имеется сорок версий.

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

Для того, чтобы отсканировать QR-код, вам нужно воспользоваться смартфонов или планшетом с камерой. У вас также должна быть установлена программа-сканер QR-кода. Эти приложения вы сможете получить на интернет-порталах App Store и Android Market.

  • Запустите программу QR-сканер и наведите камеру устройства на код.
  • Программа распознает содержимое кода, а вы получите соответствующее содержимому предложение.
  • В зависимости от содержимого вы сможете перейти по ссылке при помощи браузера или сохранить данные.

Аналогичные двухмерные коды

Достаточно популярны такие двухмерные коды, как Aztec Code и DataMatrix. Первый из них имеет в центре поля черные квадраты и может содержать порядка 3000 букв (или 3750 чисел). Международная ассоциация воздушного транспорта использует Aztec Code для электронных билетов.

DataMatrix содержит около 2300 символов (букв и цифр). Он используется в электротехнике, машиностроении (автомобилестроении), авиакосмической, пищевой и оборонной промышленностях.

Для справки

Штрих-код (Barcode) в настоящее время имеется на каждой упаковке. Как правило, в основном используются коды EAN (европейский стандарт), а именно их разновидности EAN-8 и EAN-13. Число в названии говорит о количестве символов кода. Благодаря этим кодам можно четко идентифицировать доступные товары. При помощи смартфона и специальной программы (к примеру, Beetagg), а также наличия доступа в интернет, делая покупки в супермаркете, можно определить стоимость товаров. Для этого необходимо отсканировать код и сравнить цены на продукты в интернете. Тем самым можно выявить наиболее выгодные по стоимости.

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

Вот простой пример использования QR-кода на банке Pepsi

Хотите получать обновления блога? Подписывайтесь на рассылку и внесите свои данные: Имя и е-мейл

01.04.2013

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

Что такое QR-код

QR-коды, по сути, являются миниатюрными носителями данных, способными хранить текстовую информацию, равную по объему половине страницы формата А4. Эти данные закодированы с помощью черных и белых квадратов, которые, подобно нулям и единицам в компьютерной технике, могут быть расшифрованы только специальным сканирующим устройством. Их объединяет следующий прин­цип: определенное сочетание квадратов соответствует какому-то конкретному значению, например букве или числу.

Для чего нужны QR-коды

Первоначально QR-коды использовались только в промышленности, но со временем обнаружились другие возможности их применения, и QR-коды стали активно проникать в нашу жизнь. Любой смартфон с подходящей программой-сканером способен распознавать и расшифровывать данную информацию. Чаще всего QR-коды встречаются сейчас в рекламе и газетах. Здесь они содержат, прежде всего, сложные или очень длинные интернет-адреса. Чтобы получить необходимую информацию, нужно подне­сти камеру телефона или смартфона к коду (см. рис. вверху справа). использует QR-коды для загрузки приложений (см. врезку на стр. 64). Кстати говоря, QR означает Quick Respon­se – быстрый ответ. Насколько выбранное название соответствует действительности, вы можете проверить, воспользовавшись тестовыми QR-кодами на следующей странице. Камерофон с программой-сканером сможет расшифровать код в одно мгновение.

Как устроены QR-коды

1. Позиционирование

Данная метка, расположенная в трех углах рисунка, позволяет сканирующему устройству распознавать положение QR-кода и быстрее запускать процесс сканирования. На качество распознавания влияет ширина белой рамки вокруг QR-кода.
2. Номер версии
QR-код содержит также информацию об используемой версии кода – в настоящее время их количество уже достигло сорока (см. рис. внизу слева).
3. Синхронизация
Между тремя позиционными метками проходит пунктирная линия, которая задает модель матрицы.
4. Формат
С помощью этой информации сканирующее устройство определяет используемый формат данных. Например то, что именно скрывается в коде: календарная запись, контакт­ные данные или ссылка на ресурс в Интернете.
5. Направление
Данная метка помогает сканирующему устройству оп­ределять, имеет ли изображение QR-кода искажение перспективы или нет. Чем больше код, тем больше такого рода меток в нем содержится.
QR-коды всегда имеют квадратную форму. Сердцем кода является так называемая матрица с ее замысловатым рисунком. Черные линии и квадраты содержат данные, которые хранятся в модулях. Количество модулей зависит от того, какой объем данных необходимо сохранить. Самый маленький QR-код (версия 1) содержит 441 модуль (21х21). Версия 40 имеет 31 329 модулей (177х177) и, соответственно, больший размер. Кроме того, QR-код содержит дополнительные данные, необходимые для корректного распознавания информации программами-сканерами мобильных телефонов.

Где расположена информация

Матрица, несмотря на кажущу­юся путаницу множества линий и квадратов, предоставляет широкие возможности для хранения данных. В отличие от старых штрих-кодов данные в матрице хранятся в двух измерениях – по вертикали и по горизонтали (см. рис. внизу слева). Так, небольшие квадратики могут вме­стить около 4 тысяч буквенно-цифровых символов, то есть букв в сочетании с числами и спецсимволами. Для сравнения: наносимый на упаковках штрих-код системы EAN способен хранить только 13 чисел. Благодаря системе коррекции ошибок прочитать QR-код можно даже в том случае, если часть кода отсутствует или повреждена. Чем выше степень коррекции ошибок, тем меньше данных можно поме­стить в QR-код. Кстати, QR-коды могут иметь и другой цвет – не только черно-белый. Важно лишь одно: чтобы между светлыми и темными уча­стками был четкий контраст.

Что содержится в QR-кодах

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

Наиболее распространены следующие форматы.

    Интернет-адрес. QR-коды в газетах и рекламных объявлениях содержат в основном ссылки на какие-либо интернет-ресурсы. Они перенаправляют пользователя на нужный сайт, избавляя от необходимости кропотливо вводить множество знаков в адресной строке интернет-браузера. На веб-сайте содержится, например, описание продукта или дополнительная информация по теме газетной статьи. Контактные данные. Неуклонно растет популярность QR-кодов, содержащих контактные данные, наносимые, например, на визитки. Это облегчает использование персональных данных: вы просто сканируете код и сохраняете контактную информацию в телефоне или на компьютере. Адрес электронной почты. QR-код может также содержать адрес электронной почты, а также имя адресата. Так что вручную вводить адрес не нужно – сообщение можно отправить одним нажатием на кнопку. Возможные вари­анты использования: получение информации и участие в розыгрышах ценных призов. SMS. Нередко для участия в акции требуется отправить SMS. QR-код избавит вас от необходимости набора текста. Просто отсканируйте код и увидите на дисплее смартфона готовое сооб­щение. Геоданные. В QR-коде могут быть зашифрованы и геоданные, что позволяет посмотреть расположение того или иного объекта, например, в «Картах Google». Текст. Этот формат пригоден для различных целей – например, для нанесения на входные и проездные билеты, а также сохранения коротких текстов или стихо­творений. Телефонные номера. При сканировании QR-кода с телефонным номером можно сразу же сделать звонок, однако при условии, если такое действие поддерживает установленная программа-сканер.

Что нужно для сканирования QR-кодов

Мобильный телефон, планшетный ПК или ноутбук с камерой. Кроме того, потребуется подходящая программа, способная читать QR-коды. Популярные приложения Beetagg (www. beetagg. com) и i-nigma (www. i-nigma. com) можно установить на телефоны Apple и Nokia, а также на устройства под управлением Android.

Сканирование QR-кодов

Для сканирования QR-кодов можно использовать смартфон или планшетный компьютер с камерой. Кроме того, потребуется программа-сканер QR-кодов. Бесплатные приложения вы найдете в интернет-магазинах App Store или Android Market.

Запустите приложение и наведите камеру на QR-код.

В одно мгновение программа расшифрует его содержимое и предложит выполнить соответствующее действие.

При утвердительном ответе будет запущен, например, ваш интернет-браузер, который загрузит соответствующую страницу в Интернете.

    QR-коды в журнале ComputerBild
    тоже использует QR-коды. Начиная с первого номера журнала за нынешний год, для упрощения загрузки различных программ мы предоставляем читателям QR-коды приложений. Android, Symbian и iOS
    Пожалуй, наибольшую пользу QR-коды приносят в случае с приложениями для Android-смартфонов. Дело в том, что эти программы, как правило, не размещаются на сайтах производителей – их можно скачать только с Android Market. QR-код позволяет покупателю сразу же оказаться на странице загрузки, минуя стадию поиска в онлайновом магазине. Всё очень просто
    Все, что вам нужно, Computer­Bild предоставляет бесплатно: коды загрузки программ для смартфонов доступны на страницах журнала. Мы разработали свое приложение-сканер кодов для Apple iPhone, iPod touch и iPad, а также мобильных телефонов под управлением Android. Вы найдете его в интернет-магазинах App Store и Android Market – достаточно ввести в поле поиска Code Leser.

Тестовые QR-коды

Попробуйте QR-коды в действии: ниже приведены пять настоящих QR-кодов. Что в них содержится, вы быстро узнаете с помощью камерофона.

Контактные данные
Если вы отсканируете этот QR-код, то получите контактные данные главного редактора журнала Computer­Bild Николая Левского. Эту информацию вы можете занести, например, в свою адресную книгу.

Адрес электронной почты
Этот QR-код приведет вас прямо в отдел журнала ComputerBild, отвечающего на письма читателей: editorial@computerbild. ru.

Ссылка
Веб-сайт содержит множество полезной информации и по­этому пользуется большой популярностью у постоянных читателей. Этот QR-код избавит вас от необходимости вводить адрес вручную на мобильном устройстве: www. computerbild. ru.

Google Maps
Данный QR-код содержит ссылку на страницу загрузки программы «Карты Google» для смартфонов на платформе Android. Это приложение вот уже который месяц входит в первую десятку самых популярных бесплатных программ магазина Android Market.

Аналогичные двухмерные коды

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

Aztec Code
Его черные квадраты в центре поля не спутаешь ни с чем. Этот код может содержать около 3000 букв или 3750 чисел. Aztec Code был выбран Международной ассоциацией воздушного транспорта для электронных билетов.

DataMatrix
DataMatrix может содержать примерно 2300 буквенно-цифровых символов. Этот код применяется для маркировки в электронике, автомобилестроении, пищевой, авиакосмической и оборонной промышленности, машиностроении.

Вездесущие штрих-коды

Штрих-код (или Barcode, см. рис. справа) сегодня можно найти на любой упаковке. В большинстве случаев используются штрих-коды европейского стандарта EAN (European Article Number – европейский номер товара). Наиболее распространены разновидности EAN-13 и EAN-8. Число указывает на то, из какого количества символов состоит код. Изо­браженный справа штрих-код имеет 13 цифр, код EAN-8 состоит, соответственно, из 8 цифр. Си­стема EAN-кодов обеспечивает возможность четкой идентификации доступных товаров. Вооружившись камерофоном и подходящей программой-сканером таких кодов, например Beetagg, а также недорогим тарифом для доступа в Интернет, вы легко можете, находясь в супермаркете или магазине электроники, сравнить цены на товары. Все, что нужно, это отсканировать код товара и запустить функцию сравнения цен в Интернете. Таким образом можно быстро определить, в каком случае товар продается по действительно выгодной цене. Помимо EAN-кодов существуют и другие штрих-коды, с которыми мы сталкиваемся ежедневно: лекарственные препараты и аптечные изделия не имеют EAN-кодов. Вместо них в этой сфере используется штрих-код с центральным фармацевтическим номером. На письма и открытки наносится так называемый код адресата, позволяющий машинным способом сортировать и распределять почтовые отправления.

Как самому создать QR-код

Это совсем не трудно. Благодаря тому что QR-коды не были лицензированы, каждый из нас может бесплатно создавать и использовать их. Для этого понадобится лишь специальная программа – генератор QR-кодов. В ознакомительных целях лучше всего воспользоваться одним из бесплатных веб-сервисов. Compu­terBild расскажет, как это делается с помощью QR Coder.

Самостоятельное создание QR-кода

Поможет веб-сервис
В Интернете имеются сервисы для бесплатного создания собственных QR-кодов. Одним из них является QR Coder (www. qrcoder. ru). Compu­terBild поможет освоить процедуру создания кодов с помощью этого сервиса. Вы можете использовать и другие аналогичные онлайн-ресурсы.
Создание QR-кода
Откройте сайт www. qrcoder. ru. Далее будет загружена маска ввода QR-кода, а в качестве формата выбран текст. Для изменения формата кликните по соответствующей ссылке, а затем введите текст и нажмите на кнопку «Создать код». Сразу после этого справа вы увидите свой QR-код. Чтобы сохранить его на диске в виде файла формата GIF, кликни­те по картинке правой кнопкой мыши, выберите в контекстном меню пункт «Сохранить» и укажите путь к папке, в которой будет храниться изображение. Готово! Созданный QR-код вы можете распечатать на принтере или отправить по электронной почте.

Для чего можно использовать свои QR-коды

QR-код можно сохранить в виде графического файла формата GIF, JPEG, TIFF или PNG. Поэтому, как и в случае с обычными фотографиями, вы получаете широкие возможности использования кодов. QR-код можно без проблем распечатать на струйном или лазерном принтере, опубликовать в Сети, отправить по электронной почте или использовать в качестве экранной заставки, содержащей, например, сообщение: «Сделай паузу!».

Когда появились QR-коды

QR-код был разработан японской фирмой Denso Wave, принадлежащей к группе компаний Toyota, и представлен в 1994 году. Еще в далеких 80-х годах японская автопромышленность стала предъявлять повышенные требования к машиночитаемым кодам. Они должны были хранить больший объем данных на гораздо меньшей площади, а сканированию не должны были препятствовать ни частичное загрязнение, ни по­вреждение кода.

Каков максимальный размер QR-кода

В отношении размера не существует никаких ограничений. Главное условие – это возможность считывания кода сканирующим устройством. Огромный QR-код на стене дома можно прочитать, например, с расстояния в несколько метров с помощью телефона.
QR-коды не должны быть также слишком маленькими, иначе сканирующие устройства с нехитрой оптикой, например сотовые телефоны со встроенной камерой, не смогут сфокусироваться на коде и расшифровать его содержимое. Даже если QR-код содержит всего один интернет-адрес, длина каждой из сторон кода не должна быть меньше 2,5 см. С помощью высокоточной лазерной техники на поверхности каких-либо элементов конструкции можно выгравировать крохотные 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)
  • 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. Если ошибся блогом, то подскажите куда - перенесу.

Метки: Добавить метки