Последнее время с широким распространением смартфонов и коммуникаторов стало весьма популярным кодировать контактную информацию, ссылки на сайты, визитки в виде QR-кода. QR-код - это подвид штрихкода, матричный код. Он позволяет кодировать внутри себя достаточно большое количество информации и притом легко распознается оборудованием, например камерой телефона. Например, на телефонах на базе платформы Android есть весьма удобное приложение QR Droid, на Symbian - I-Nigma. На компьютере для декодирования можно использовать media-gfx/zbar.
Рассмотрим простую задачу - закодировать визитку компании в виде QR-кода, используя Calculate Linux в качестве рабочей среды.
Для начала ставим необходимый пакет media-gfx/qrencode:
emerge -a media-gfx/qrencode
Данная утилита предлагает следующие параметры:
rencode -h
qrencode version 3.3.1
Copyright (C) 2006-2012 Kentaro Fukuchi
Usage: qrencode [OPTION]... [STRING]
Encode input data in a QR Code and save as a PNG or EPS image.
-h display this message.
--help display the usage of long options.
-o FILENAME write image to FILENAME. If '-' is specified, the result
will be output to standard output. If -S is given, structured
symbols are written to FILENAME-01.png, FILENAME-02.png, ...
(suffix is removed from FILENAME, if specified)
-s NUMBER specify module size in dots (pixels). (default=3)
-l {LMQH} specify error correction level from L (lowest) to H (highest).
(default=L)
-v NUMBER specify the version of the symbol. (default=auto)
-m NUMBER specify the width of the margins. (default=4 (2 for Micro))
-d NUMBER specify the DPI of the generated PNG. (default=72)
-t {PNG,EPS,ANSI,ANSI256,ASCII}
specify the type of the generated image. (default=PNG)
-S make structured symbols. Version must be specified.
-k assume that the input text contains kanji (shift-jis).
-c encode lower-case alphabet characters in 8-bit mode. (default)
-i ignore case distinctions and use only upper-case characters.
-8 encode entire data in 8-bit mode. -k, -c and -i will be ignored.
-M encode in a Micro QR Code.
-V display the version number and copyrights of the qrencode.
[STRING] input data. If it is not specified, data will be taken from
standard input.
Наиболее для нас интересные:
~~o FILENAME
~~ куда будет выведен сгенерированный код
~~t {PNG,EPS,ANSI,ANSI256,ASCII}
~~ формат изображения
Для того, чтобы закодировать визитку используется весьма распространенный формат vCard
Таким образом мы хотим закодировать следующую информацию:
Организация: Компания Калкулэйт
Адрес сайта: http://www.calculate.ru
E-mail для связи: support@calculate.ru
Телефоны: +78126330110 +74952340102
Примечание: Производство упаковки из картона
В итоге получаем вот такую команду для генерации искомой картинки:
qrencode -o /home/user/qr.png -t PNG "BEGIN:VCARD
ORG:Компания Калкулэйт
URL:http://www.calculate.ru
EMAIL:support@calculate.ru
TEL:+78126330110
TEL:+74952340102
NOTE:Производство упаковки из картона
END:VCARD"
Именно этой командой был получен QR-код в начале статьи.
Популярные приложения для распознавания QR-кодов поддерживают следующие форматы данных: URL, Закладка в браузер, Email, SMS, vCard, географические координаты.
Например, вот такой командой мы можем закодировать адрес данного сайта:
qrencode -o /home/user/qr-calclinux.png -t PNG "http://www.calculate-linux.ru/"
Получаем в итоге такую картинку:
В современном мире можно придумать тысячу применений для QR-кодов, например, реклама, ссылки на статьи в википедию на памятниках, можно даже придумать гео-локационную игру с использованием QR-кодов и весьма полезно иметь под рукой удобный инструментарий для генерации кодов.