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

qr-web.png

Последнее время с широким распространением смартфонов и коммуникаторов стало весьма популярным кодировать контактную информацию, ссылки на сайты, визитки в виде 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-calclinux.png

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

1 Like

а считывать на компьютере его чем удобней?

media-gfx/zbar позволяет декодировать как QR, так и другие форматы штрих-кодов.

А еще создавать QR коды очень удобно здесь, а главное бесплатно!