среда, 7 июля 2010 г.

QR - коды и обзор основных библиотек работы с ними



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

Если коротко, то QR - коды - это разновидность двух-мерных шрихкодов, позволяющих кодировать относительно большой объем информации. Например, это может быть ссылка на сайт, текст, контакт в записной книжке и т.д. Считать этот код можно, используя даже обычную камеру мобильного телефона (единственное условие - камера должна иметь достаточное разрешение). Благодаря чему, теперь больше нет необходимости вводить вручную в телефон ссылки на сайты и данные контакта, достаточно просто сфотографировать двоичный код и все. Кстати, сервис по представлению ссылок в виде QR- кода недавно стал предоставлять и Google. Впрочем, таких проектов множество: qrcoder.ru - позволяет закодировать текст, ссылку, визитную карточку или sms-сообщение; mojiq.kazina.com - позволяет создавать "красивые" QR-коды, вставляя в них произвольный текст.

Гораздо меньше проектов по распознаванию и декодированию данных сообщений. В той же википедии можно найти сравнительный обзор существующих декодеров, а также ссылки на их онлайн версии. Лично я могу выделить след. проекты:
QuickMark - пожалуй, лучший на данный момент декодер. Поддерживает QR-коды и DataMatrix. Выпущены версии под Symbian, Windows XP (Vista/7) и Windows Mobile. Недостаток - проект отнюдь не свободный и требует денежку за использование.
Google ZXing - о нем скажу более подробно чуть ниже, а здесь хотелось бы отметить широкий выбор поддерживаемых платформ и кодов, а также бесплатность использования (в том числе и для коммерческих целей).

Конечно, проектов декодеров гораздо больше, но эта статья не претендует на полноту (в отличии от указанной статьи в википедии).
Перейду теперь к обзору основных библиотек разработки собственных приложений в этой области.

Сразу хочу расстроить, так понравившейся мне QuickMark является закрытым проектом, а поэтому использовать его в своих приложениях, конечно, можно, но не за бесплатно. В частности, существует два варианта использования данного продукта сторонними разработчиками: API интерфейс (для этого, соответственно, требуется установленная лицензионная версия QuickMark) или SDK, за использование которого также требуется заплатить.

Open Source QRCode Library - это первая библиотека, попавшаяся мне на глаза. Проект абсолютно свободный, но отнюдь не самый лучший. Написан на C#, что мне в нем сильно приглянулось, но все же имеет ряд недостатков. Самый главный из них - низкий процент успешных распознаваний. Даже практически идеальные снимки кодов он или вообще не распознает или распознает после хитрых манипуляций (например, в одном из случаев потребовалось обрезать картинку почти до одного QR-кода и уменьшить! разрешение снимка). Не рекомендовал бы эту библиотеку к реальному применению.

www.aipsys.com - лучше, чем предыдущее решение, но имеет ряд недостатков - поддерживается малое число платформ (только Windows), представляется в виде динамической библиотеки, ActiveX и ASP компонент. Поддерживает языки C++ и Делфи. Ни о какой прямой поддержки Java или C# и речи не идет.

Google ZXing - самое лучшее, на мой взгляд, решение для использования в своем приложении. Здесь и широкая поддержка платформ ( в том числе Android и IPhone), множество поддерживаемых языков - Java (ME версия), C#, С++(через портирование) и другие. Бибилиотека распространяется по лицензии Apache License, Version 2.0, что означает возможность использования кода как в свободных, так и в коммерческих проектах. Библиотека хорошо документирована. На данный момент доступна версия 1.5 (к слову, в ней нет версии для C#, но она есть в SVN репозитории). Честно признаться, проект ZXing мне сразу приглянулся, а потому в ближайшее время я собираюсь написать статью с разбором основных возможностей этой библиотеки.

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

1 комментарий:

  1. Best Casinos - Casinos, Booking, Slot machines - Jtm Hub
    JTM Hub 구미 출장마사지 offers you complete access to your favorite games, from the slots and 경기도 출장안마 video poker games and to the newest 춘천 출장안마 slots games. 전라북도 출장안마 The 경산 출장마사지 world's largest casino resort and gaming information.

    ОтветитьУдалить