Как сделать красивый qr код. Специфика генерирования цветных QR кодов

В 1994 году инженерами компании «Denso-Wave », которая в Японии выступает лидером инновационных разработок для автомобилей, был представлен миру двумерный штрих код, основным названием которого сейчас является сокращение от словосочетания quick response – QR-код , что означает «быстрый отклик «:

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

  • Количество информации. QR-код хранит информацию, записанную в двух направлениях: в горизонтальном и вертикальном. Такое расположение дает возможность сохранить данных в сотни раз больше (4269 символов ), чем в обычном штрих коде:
  • «Реставрация » QR-кода – возможность восстановления информации, если поврежденный участок составляет не более 30% от общей площади кода;
  • Легкость в распознавании. Двумерный штрих код можно сканировать с помощью смартфона, а его предшественник требовал использования специального сканирующего устройства.

Что закодировано в QR-коде?

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

Именно из-за такого разнообразия QR-код используется в различных сферах:

  • Производство и продажа товаров (кодировка различной информации о товарах );
  • Развлечения. В кино, музеях и театрах QR-код заменяет всем привычные бумажные билеты;
  • Туризм. В двумерных штрих кодах записана информация о достопримечательностях;
  • Уход за пожилыми. Для оказания помощи старику, в его бейдже присутствует вся информация о владельце в закодированном виде, которую легко считать при помощи смартфона.

Как считать информацию QR-кода?

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

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

Как создать QR-код?

Проще всего создать QR-код онлайн. Это ни для кого не составит труда, нужно лишь корректно сформулировать текст для кодирования, длина которого не должна превышать 150 знаков.

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

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

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

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

Создание QR-кода для визитки

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

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

Создание QR – кода с логотипом

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

После генерации, creambee.ru дает возможность оригинально оформить полученное изображение кода. Пример разработки логотипа будет описан на ранее созданном QR-коде визитки:

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

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

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

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

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

Немного теории

Прежде чем рассмотреть сервисы-генераторы, предлагаю Вам немного узнать о самих QR кодах, чтобы Вы не воспринимали их как нечто сверхъестественное:). Каждый код, по сути, представляет собой матрицу (двухмерный массив), содержащую последовательности блоков в горизонтальной и вертикальной плоскостях. Блоки имеют два состояния: "белое" (означает ноль) и "чёрное" (единица).

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

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

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

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

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

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

Создать цветной QR-код

Создать обычный чёрный QR-код сегодня не проблема. Однако, часто можно встретить различные цветные коды. Если Вам хочется создать именно такой рекомендую очень простой и бесплатный генератор QRMania.ru :

При помощи QRMania.ru Вы можете закодировать любой текст, номер телефона, шаблон SMS-сообщения, адрес электронной почты и шаблон письма, визитную карточку, сообщение в Twitter или географические координаты. Всё, что нужно сделать - выбрать нужный тип кодируемых данных и заполнить появившуюся форму. По мере ввода данных внизу будет динамически формироваться готовый QR-код.

Справа от форм ввода имеется набор доступных настроек. Здесь можно выбрать любой цвет вместо стандартного чёрного (главное, чтобы он хорошо контрастировал с фоном), задать размер (от 200 до 1000 пикселей), уровень коррекции ошибок и скругления острых углов Вашего кода. Все настройки применяются в режиме реального времени, поэтому Вы можете наблюдать за всеми изменениями.

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

При помощи QRMania.ru можно быстро создать весьма симпатично выглядящий QR-код. Недостатками можно назвать, разве что, отсутствие возможности поменять фон кода и закодировать данные WiFi-подключения. Кстати, если Вам не нужно скругление углов, то аналогичные возможности предоставляет сервис 8500.ru .

Создать QR-код с изменённой формой точек

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

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

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

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

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

Если Вы интересуетесь QR-кодами, то, наверняка, замечали не совсем обычные коды, внутри которых размещались надписи или какие-либо иконки. Создать подобный QR-код с текстом можно при помощи генератора QRcc.ru :

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

Принцип работы - стандартен: выбираем тип кодируемых данных, заполняем нужные поля и переходим к дополнительным настройкам. Здесь мы можем задать текст внутри кода или иконку (к сожалению, загрузить свою нельзя, можно только выбрать одну из имеющихся). Также можно добавить надпись или подпись к нашему коду, настроить цвета для всего этого (цвет точек кода, текста внутри и надписей) и задать относительный размер увеличения (до 4-кратного). После всех настроек жмём кнопку "Создать код" и получаем результат, который можно сохранить как обычное изображение или в виде ссылки.

Фактически единственным недостатком QRcc.ru я бы назвал отсутствие возможности установки собственной иконки внутри кода, а также смены шрифта внутреннего текста и надписей.

Создать QR-код с логотипом

Рассмотренный выше сервис предоставлял нам возможность создать QR-код с небольшой иконкой внутри. Однако, в нём не было возможности загрузить собственную картинку вместо одной из стандартных. Если же Вам хочется создать QR-код с собственным логотипом, то в этом может помочь англоязычный сервис QRcode-monkey.com :

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

Для начала работы перейдите на нужную вкладку и заполните форму требуемыми данными. Ниже Вы найдёте небольшую панельку, позволяющую задать цвет кода (сплошной или градиентный). Под этой панелькой активируем галочку "Include Logo/Image in QR-Code" и нам откроется возможность выбрать в качестве центрального изображения одну из доступных иконок. Чтобы загрузить собственную картинку, перейдите на вкладку "Own Logo Image", нажмите кнопку "Upload Image" и выберите то, что нужно. Нам осталось только задать размер (выпадающий список "Resolution in Pixel/QR-Point") и нажать кнопку "Create QR-Code".

После успешной генерации для сохранения кода в нужном разрешении нажмите кнопку "Download PNG" или сохраните как изображение картинку-превью.

Создать необычный QR-код

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

Этот сервис позволяет кодировать все основные типы данных, но его главная фишка не в этом. После традиционного заполнения формы нужной информацией Вы попадаете в полноценный редактор, который даёт возможность изменить внешний вид любого элемента кода! Весь инструментарий разбит по группам на 5 вкладках:

  1. Шаблоны . На данной вкладке Вы можете выбрать один из готовых шаблонов или применить свои (если Вы зарегистрировались на сервисе и создали их ранее).
  2. Цвета . Здесь у Вас есть возможность менять цвет любого элемента QR-кода. Причём, можно задавать как однотонную заливку, так и градиенты! Особо стоит обратить внимание на кнопку "Удиви меня" - нажмите и увидите, что будет;)
  3. Фигуры . Эта вкладка позволяет изменить форму элементов Вашего кода, а также задать угол его вращения.
  4. Правка . Пожалуй, самая интересная вкладка, поскольку содержит целый набор дополнительных инструментов, вызываемых кнопками вверху. По умолчанию открывается настройка избыточности кода с оценкой его читабельности. Далее следуют инструменты ручного добавления и удаления блоков, а также правки параметров заливки. Последняя кнопка открывает доступ к возможности вставки собственного логотипа и фонового изображения.
  5. Экспорт . На последней вкладке размещена возможность сгенерировать HTML-код для вставки на сайт или в блог в виде ссылки.

Скачать готовый код можно в растровом формате PNG или векторном SVG. Пожалуй, недостатков у сервиса нет, если не считать довольно большую навороченность, с которой сходу разберётся не каждый.

Создать динамический QR-код бесплатно

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

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

Этот сервис позволяет создавать также и простые QR-коды, но нас интересуют именно динамические. Бесплатно их можно сделать до 3 штук. При этом для доступа к данной функции обязательно нужно авторизироваться при помощи аккаунта одной из соцсетей (Google+, Facebook, ВКонтакте или LinkedIn).

После входа в режим создания виртуального профиля нам нужно заполнить необходимые поля формы с данными о себе. Здесь можно добавить аватарку, указать номера телефонов. E-Mail-адреса и любую другую личную информацию. Учтите, что она будет в общественном доступе. После заполнения можно активировать слежение за кодом (статистика кликов будет приходить на почту, к которой привязан Ваш профиль соцсети, выбранной при авторизации) и выбрать сервис, на котором будет создана Ваша виртуальная визитка: me24.info или about24.info (что, впрочем, не играет особой роли). Сохраняем данные и нам становится доступной возможность стилизации QR-кода.

Что касается стиля, то мы можем задать режим избыточности для повышения коррекции ошибок считывания, размер, цвет фона и элементов кода, уровень прозрачности, а также внутренний логотип. Как видим, список возможностей весьма неплох. Единственное условие - если Вы решили добавлять логотип, обязательно убедитесь, что Ваш QR-код остаётся читабельным! Готовый код можно сохранить в форматах PNG, SVG или EPS.

QRcode.TrustThisProduct.com оказался практически единственным русскоязычным сервисом, который предоставляет пользователю динамические QR-коды на постоянной основе (а не в качестве пробника на 14 - 30 дней). Поэтому, если Вам интересно поработать с данным видом кодов, рекомендую.

Выводы

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

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

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

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

Создать QR-код онлайн

Внимание! JavaScript отключен.
Без включенной поддержки JavaScript функция Генератор QR-кода работать не будет .
Включите в своём браузере поддержку JavaScript и обновите страницу.

Помощь. Ниже представлено краткое описание по созданию QR-кода. Основные типы QR-кодов и их префиксы.

QR Code (QR-код)

QR-код, в основном, предназначен для мобильных устройств и значительно упрощает ввод различной информации в телефон или планшет. Достаточно просканировать QR-код камерой мобильного устройства и вся распознанная информация окажется на вашем дисплее, затем её можно использовать как угодно, сохранять и редактировать. Для распознавания QR-кода необходимо воспользоваться специальной программой, которую можно установить бесплатно из Google Play (для Android), Apple Store (для iPhone и iPad) и Microsoft Store (для Windows Phone), для этого просто введите в строке поиска приложений "qr code" или "qr код" и вам будет предложено огромное количество вариантов. Наиболее интересные возможности есть у приложения QR Code от компании разработчика ZXing.

Цвет и фон QR-кода

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

Уровень сглаживания QR-кода

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

Что содержит QR-код

QR-код может содержать URL, номер телефона, e-mail, контактную информацию, изображения, GPS координаты, любую текстовую информацию и даже параметры для автоматической настройки Wi-Fi сети.

URL - Web-сайт

Адрес Web-сайта или страницы. Можно указывать как с http:// так и без. Правильные примеры: , . Данный тип QR-кода позволит перейти на указанную страницу Web-сайта.

Текст

Обычная текстовая информация. Максимальная длина 1450 символов русского алфавита. Максимальное количество символов зависит от содержимого и может составлять:

  • 7089 только цифр;
  • 4296 цифры и буквы латинского алфавита;
  • 1817 иероглифов;
  • 2953 байт двоичного кода;
  • 2953 букв русского алфавита в кодировке windows-1251;
  • 1450 букв русского алфавита в кодировке UTF-8.

Телефон

Номер телефона. Формат номера телефона: +7900123456. Данный тип QR-кода позволит позвонить на указанный номер телефона.

SMS

Номер телефона для SMS и текстовое сообщение. Формат номера телефона: +7900123456. Данный тип QR-кода позволит создать SMS или MMS с уже заполненным номером и сообщением.

E-mail

E-mail адрес. Данный тип QR-кода позволит создать E-mail c уже заполненным адресом электронной почты (поле TO:). Также можно указать тему сообщения и сам текст сообщения.

Контакты

Контакты для адресной книги. Данный тип QR-кода добавит новую запись в адресную книгу, содержащую имя, номер телефона, E-mail, адрес, url и заметку. Если необходимо указать более одного номера телефона, перечислите их через запятую.

Wi-Fi сеть

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

GPS координаты

Координаты для карты Google. Данный тип QR-кода позволит отобразить место на карте, соответствующее указанным координатам.

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

Префиксы QR-кода

Если указать номер телефона как +79001234567, то сканер QR-кодов распознает номер как обычный текст (цифры), а если указать специальный префикс tel:+79001234567, то сканер определит номер телефона и предложит позвонить по нему.

Префикс URL:

URL: — префикс QR-кода для указания Web-сайтов и страниц позволит перейти по указанной ссылке. Префикс URL: указывается заглавными буквами. Указание http:// необязательно.

  • Формат: URL:[адрес_сайта]
  • Примеры: URL:www..сайт

Префикс tel:

tel: — префикс QR-кода для указания номера телефона позволит позвонить по указанному номеру.

  • Формат: tel:[номер_телефона]
  • Пример: tel:+79001234567

Префикс smsto:

smsto: — префикс QR-кода для отправки SMS или MMS позволит отправить SMS по указанному номеру с указанным текстом.

  • Формат: smsto:[номер_телефона]:[сообщение]
  • Пример: smsto:+79001234567:Текст сообщения:

Префикс mailto:

mailto: — префикс QR-кода для указания E-mail адреса позволит отправить E-mail по указанному адресу.

Префикс MATMSG:

MATMSG: — префикс QR-кода для указания E-mail адреса позволит отправить E-mail по указанному адресу c указанной темой и текстом сообщения. Префикс MATMSG: указывается заглавными буквами, а в конце необходимы две точки с запятой.

  • Формат: MATMSG:TO:;SUB:[тема];Body:[сообщение];;
  • Пример: MATMSG:TO:[email protected];SUB:Тема сообщения;Body:Текст сообщения;;

Префикс geo:

geo: — префикс QR-кода для указания GPS координат позволит открыть карту Google в указанных координатах.

  • Формат: geo:[ширина,долгота]
  • Пример: geo:55.755768,37.617671

Префикс WIFI:

WIFI: — префикс QR-кода для автоматического подключения к Wi-Fi сети. Префикс WIFI:

  • Формат: WIFI:T:[тип_шифрования];S:[имя_wifi_сети];P:[пароль];H:[скрытая_сеть];; .
  • Примеры: WIFI:T:WEP;S:HomeNet;P:*****;; , WIFI:T:WEP;S:HomeNet;P:*****;H:true;;

Контакты MECARD:

MECARD: — префикс QR-кода meCard для записи контактов в адресную книгу телефона. Префикс MECARD: указывается заглавными буквами, в конце необходимы две точки с запятой.

  • Формат: MECARD:N:[имя,фамилия];SOUND:[транскрипция_имени];TEL:[телефон];TEL-AV:[номер_для_видеофона];EMAIL:;NOTE:[заметка];BDAY:[день_рождения];ADR:[адрес];URL:;NICKNAME:[прозвище];; .
  • Пример: MECARD:N:Иван,Петров;TEL:+79001234567;EMAIL:[email protected];NOTE:Текст с заметкой;BDAY:20010205;ADR:Красная площадь, д.

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

О прозаичном

Наиболее часто пользователи зашифровывают имена, данные со своих визиток, адреса электронных ящиков или ссылки на сайты. Причем среди банальных (а-ля Иванов Сергей и Соколова Татьяна) были замечены и весьма своеобразные имена-фамилии. Особенно запомнились Кадыгроб Денис, Шалава Ольга Николаевна (интересно, фамилия девичья или уже «по мужу»), Пидосюк Олег Александрович и Попандопуло Вячеслав.

Во вторую, достаточно обширную категорию, входят коды «ни о чем»: «тест», «йцуке», «123456», «qwerty» «ляляля», «+++++» и им подобные. Ну, что здесь скажешь? Фантазия, увы, дана не всем.

На третьем месте по популярности — коды-выражения чувств. Встречалось и английское «I love you», и немецкое «Ich liebe dich», и французское "Je T"aime. Рядом с зашифрованными «Солнце, я тебя люблю» и «Зайчонок, ты лучше всех» успешно соседствуют «Марсель, дурак» и «Ты какашка тратата».

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

Не обошлось и без политических настроений, причем здесь, скорее всего, постарались братья белорусы: «Луку в жопу», «Бацьку ф топку» и известное сегодня каждому белорусу «ШОС». А россияне подкачали: кодов про кого-нибудь из четы Путин-Медведев ни разу не встретилось.

Многие пользователи генерировали строчки из стихотворений. Лидером стало «Наша Таня громко плачет» — про рыдающую девочку вспомнили аж 5 раз. Гораздо хуже обстоят дела со школьной программой: если Пушкина еще кто-то знает («Я к вам пишу, чего же боле»), то Лермонтова, Есенина или Некрасова незаслуженно позабыли вообще. Также странно, что никому не пришло в голову сгенерировать строчки песен. Из «музыкальных» QR-кодов было «выловлено» лишь «Ослик, суслик, паукан и мокренькая кисонька» и «до ре ми фа соль ля си». Последний код, кстати, привлек своей кроваво-красной расцветкой и угрожающей, написанной на самом коде, фразой — «Убью». Лишнее подтверждение тому, как наши ожидания нередко полностью расходятся с полученным.

Переходим к оригинальному


Намного реже встречаются QR-коды, создатели которых проявили долю фантазии и юмора. Но они есть. Нам удалось «отловить»:
  • призыв «Вступайте в ряды натуралов»
  • предупреждение «Отжим денежных средств у государства. Внимание опасность!»
  • «план на будущее» «Я скоро пойду на базар и куплю самовар. Буду пить чай»
  • удивление «а ты не поленился расшифровать»
  • мольбу «А если ошибка? Если бы ошибка… Только бы ошибка...».

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

  • «Придешь сегодня?»
  • «Приходи сегодня»
  • «Кароче Катя чота молчит =(Мы опять нажремся с тобой»

Наверное, Катя представляла вечер совсем по-другому, вот и молчит. Попробуйте предложить «ужин и массаж», глядишь, леди и согласится.

  • «Кукуся сладкая, ты где?»
  • «Я здесь»
  • «А я тут»
  • «Может, кофе?»
  • «Может, сразу?»

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

И уж не знаем, можно ли отнести один из сгенерированных кодов к «оригинальным… Но теперь мы — обладатели данных кредитки. Все же нашим посетителям не мешало бы быть поосторожнее.

Персонально для разработчиков

Некоторые пользователи генерировали коды, предназначающиеся разработчикам генератора . Один не поленился экспрессивно сообщить «Задрал ты уже со своими кр кодами!», другой возмутился тем, что «слишком много у этого генератора настроек» (уж простите, скучных черно-белых квадратов и так вокруг хватает). Но гораздо больше было приятных посланий: «Супер-генератор», «Прикольно, мне нравится», «Привет разработчикам — прога зашибись», «Пацаны, пешите исчо» (кстати, да, над генератором идет постоянная работа и в планах — выпуск новых версий). В общем, как бы там ни было, внимание к нашим персонам всегда прельщает.


В заключение хочется особо отметить некоторых пользователей, в частности, наших уже постоянных «клиентов». Практически каждый день генерируются коды, посвященные Дарвиновскому музею и его сайту www.darwin.museum.ru . Кстати, в Дарвиновском музее владельцам устройств с приложениями, распознающими QR-коды, не понадобится экскурсовод — вся необходимая информация зашифрована в развешенных повсюду кодах. А также невероятную активность проявляет интернет-магазин самогонных аппаратов, который зашифровывает не только данные о продаваемых моделях, но и знакомит с народной мудростью в духе «Самогон ваш враг, гоните его сами». Этот ресурс стал первым среди тех, кто разместил у себя

Некоторое время назад мне потребовалось генерировать несколько QR-кодов для каждого пользователя системы. А чтобы было интересно сканировать этот код, было решено добавить в него логотип.

Предисловие
QR-коды можно встретить везде, но как их отличить друг от друга? QR-коды всё время завоёвывают популярность, и нет-нет, да и встретятся несколько штук рядом. Зрелище это не из приятных - какой сканировать первым? И вообще, зачем сканировать то, от чего начинает рябить в глазах?
Решением такой задачи может служить персонализирование QR-кода: нестандартные цвета, логотип, или пояснительная надпись немного ниже самого кода, по которой можно понять - интересно ли зрителю это или нет.
Навеняка многие видели красивые QR-коды (а кто не видел, может посмотреть на хабре или на стороннем ресурсе), но мне стоит оговориться - чтобы создать такой, нужно вложить либо большие ресурсы в алгоритм генерации картинки, либо нарисовать такой код в фотошопе, но это будет единичный экземпляр, и для большинства из нас он не годится (если, конечно, есть вообще необходимость генерировать их самому).
Как это реализовано?
Создатели QR-кодов не расчитывали, что мы будем вставлять свои картинки в закодированные сообщения, коими являются сами коды, но они предусмотрели возможность высокого объёма восстановительной информации - код может содержать до 30% последней. Чем её больше - тем гуще картинка, но больше шансов, что пользователь раскодирует испорченный код. А портить мы его будем логотипом.
Для генерации кода использовалась библиотека ZXing - это open source библиотека для обработки различных 1D/2D штрихкодов, которая, кроме Java, имеет порты на другие языки.
Особенностью этой библиотеки является то, что она разбита на модули и распространяется в исходных кодах, которые необходимо компилировать. Но, к счастью, она есть в мавен репозитории - модуль core использовался для генерации, и модуль java se использовался для валидации кодов.
Для работы с графикой были использованы стандартные классы из пакета java.awt (JavaSE).
За дело!
Для экспериментов была сделана небольшаю консольная программа, которую можно найти на гитхабе - репозиторий опытного образца , которую я и разберу в этом разделе.

Тот, кому просто нужен QR-код, может написать следующее:
BitMatrix matrix = new MultiFormatWriter().encode("text to encode", BarcodeFormat.QR_CODE, width, height); MatrixToImageWriter.writeToFile(matrix, filename.substring(filename.lastIndexOf(".")+1), new File(filename));
В противном случае так делать не стоит - по умолчанию библиотека добавит мало восстановительной информации, и даже если после вставки логотипа картинка расшифруется у нас на компьютере, то с фотокамеры она уже может считаться неправильно. По-этому будет хорошим тоном добавить максимум восстановительной информации, а раз мы будем изменять цвета и картинку, то не нужно спешить сохранять результат:
Hashtable hintMap = new Hashtable(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
Создание картинки из матрицы кода делается в цикле - создаём картинку соответствующего размера и, проходя матрицу кода, отображаем наличие бита в матрице на картинку как информативный пиксель. Во время этого действа можно задать цвет фона и цвет кода:
int matrixWidth = bitMatrix.getWidth(); BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.white); graphics.fillRect(0, 0, matrixWidth, matrixWidth); Color mainColor = new Color(51, 102, 153); graphics.setColor(mainColor); //Write Bit Matrix as image for (int i = 0; i < matrixWidth; i++) { for (int j = 0; j < matrixWidth; j++) { if (bitMatrix.get(i, j)) { graphics.fillRect(i, j, 1, 1); } } }
Ну вот, теперь, когда мы оперируем картинкой, а не матрицей единиц и нулей, нам очень даже удобно и логотип в центр поместить, предварительно поправив его разрешение, чтобы не перекрывать весь код в случае слишком большого размера:
BufferedImage logo = ImageIO.read(this.getLogoFile()); double scale = calcScaleRate(image, logo); logo = getScaledImage(logo, (int)(logo.getWidth() * scale), (int)(logo.getHeight() * scale)); graphics.drawImage(logo, image.getWidth()/2 - logo.getWidth()/2, image.getHeight()/2 - logo.getHeight()/2, image.getWidth()/2 + logo.getWidth()/2, image.getHeight()/2 + logo.getHeight()/2, 0, 0, logo.getWidth(), logo.getHeight(), null); private BufferedImage getScaledImage(BufferedImage image, int width, int height) throws IOException { int imageWidth = image.getWidth(); int imageHeight = image.getHeight(); double scaleX = (double)width/imageWidth; double scaleY = (double)height/imageHeight; AffineTransform scaleTransform = AffineTransform.getScaleInstance(scaleX, scaleY); AffineTransformOp bilinearScaleOp = new AffineTransformOp(scaleTransform, AffineTransformOp.TYPE_BILINEAR); return bilinearScaleOp.filter(image, new BufferedImage(width, height, image.getType())); }
После нашего надругательства над кодом, обязательно стоит его проверить на правильность - хватит ли восстановительной информации для идеальной фотокамеры? И если хватит, то пора сохранить катинку и отдать её пользователю:
if (isQRCodeCorrect(content, image)) { ImageIO.write(image, imageFormat, this.getGeneratedFileStream()); } private boolean isQRCodeCorrect(String content, BufferedImage image){ boolean result = false; Result qrResult = decode(image); if (qrResult != null && content != null && content.equals(qrResult.getText())){ result = true; } return result; } private Result decode(BufferedImage image){ if (image == null) { return null; } try { LuminanceSource source = new BufferedImageLuminanceSource(image); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result = new MultiFormatReader().decode(bitmap, Collections.EMPTY_MAP); return result; } catch (NotFoundException nfe) { return null; } }

Поставленная цель достигнута - QR код сгенерирован. Спасибо за внимание!