Планета Calculate

Облако тэгов

blog wiki qutim bonding bond канал calculate2 ldap cds mail hdd smart flashplayer alsa db маршрутизатор iptables полезное новости optimization emerge grub grub2 загрузка загрузчик перенесено cls CDS домашний сервер linux tbn calculate livecd cld uptime calculate linux bsa games templates шаблоны vpn tun tap ssh доступ удаленная сеть pptp samba winbind calculate-sources kernel update LVM ПО оптимизация репозиторий portage сеты EAPI 2 release ДНК DNA calculate 2.2 fonts шрифт сглаживание CLDX packages overlay CLD Calculate Gnome Desktop Office CLDG cldg gentoo postfix mailman maillist разработка kde и многопоточный звук CLS irc профиль пользователя рассылка wget многопоточная закачка calculate-install пресса news press screenshot gnome win7 theme Windows 7 установка calculate-install-gui developers костыли birthday серые листы почта Spamassassin twitter iphone интернет blueman bluetooth benchmark benchmarking facebook GSC CSS sony vaio template CDS dns dhcp wi-fi network XFCE autologin nouveau book install syslog authentication internet USE meta package builder recordmydesktop pitivi ffmpeg ubuntu debian windows stage desktop кеширование binary CMC BINHOST BugTracker live-flash MultiTail udev bittorrent acl tracker mirrorselect vim bash-completion помощь участие распространение openldap weechat binhost torrent mirror PowerTOP Midnight Commander bash командная строка mp3 cp1251 UTF-8 dropbox kde xfce textile dwm chromium интервью elogv udisks udisks-glue ccze grc most tail handbook calculate utilities make.conf man apvlv pdf djvu umd plugn #calculatelinux euse openrc NetworkManager dns python cairo-dock glx-dock windows 7 rtorrent rutorrent flags strategy X Xorg ati ati-drivers 11.6 udisks ntfs-3g team jabber pastebin video donation Gnome3 canto ncurses RSS reader cmc lirc ПДУ xbmc Audio sound pulseaudio history foto VirtualBox Calculate Linux world openbox xchat tint tint2 slim feh obconf obmenu xxkb nm-applet автологин брелок bug autounmask package unmasking nut lighttpd ups atheros9285 atheros asus Zen оптимизация ядра lvm raid btrfs p2p linuxdcpp Calculate Utilities перемещаемые профили xorg установка linux настройка linux оптимизация linux asus n10j двойная загрузка atom n270 dhcp KDE MidnightCommander kde vlc smplayer mplayer настройка цветов монитора настройка цветов фотоаппарата настройка цветов принтера настройка цветов сканера цветовой профиль icc locale localepurge Atheros Calculate Linux Enlightenment E17 Calculate Calculate E17 mc swap ParaType font глобальное меню git ускорение keyboard layout pwkl proxy profile E17 backdor vulnerability безопасность firefox звук hdmi TV mouse клавиатура мышка радио mpg123 ppp0 net ядро xsel gnome3 Скоростной алгоритм сжатия LZ4 acoola Calculate USB Creator видео screencast 1C postgresql apache pam security pxe aufs calculate3 midori кодировка CP1251 Summer Camp beta начало блог описание python3 Icon programming установка Icon в Calculate фидонет фидо linux icon распространение программ утилитки на Icon nano подсветка синтаксиса создание подсветки синтаксиса день программиста ratigan монитор экран разрешение persistence persistence-mode liveusb livedvd remoteapp freerdp w2k3 w2k8 keyexec radeon AMD pf-kernel pre code documentation форматирование текста fontconfig lcdfilter fonts шрифты DPI qrencode qr-code xfce cl-console-bg screensaver caffeine курсор мыши unclutter steam valve objecticon сборка из исходников mencoder Firefox ext4 e4rat gnome 2 tuxonice hibernate uefi сайт github dvcs Либрусек MyRuLib Библиотека Книги сервер xen виртуализация google talk-plugin dmix звуковые карты rip GPT EFI CL14 SSD производительность обмен опытом mate cldm alpha shorewall firewall clementine dmidecode tools CSC dhcpcd networking pgo АТС asterisk revision Tor lautre lm_sensors monitoring temperature cl-update-profile minicom 3G 4G LTE Huawei cl cpu family utilities eudev systemd cl-kernel браузер tweaks RT zswap uksm nexus android bootchart OpenRC systemd-udevd new MATE dconf features CLDM abi_x86_32 kde5 KDE5 Plasma CLSK freshplayerplugin otter QupZilla openssh ControlMaster Снобизм XZ kernek qupzilla calculate-utils работа вакансия программист android kde mtp ebuild CLSL день рождение CLDL CLDC Cinnamon calculate linux antivirus free помощь проекту calculate utils реестр icons browser cl-builder Compose unicode ini.env su sudo CL17 план plan luks cryptsetup codelite cpp support forum форум lto howto дизайн Timeless тема gcc power energy saving CLC LXC LXD distro container telegram repo libvirt kvm qemu rdp automagic softraid muqss pae x86 markdown dnscrypt server vps openvpn calculate-access lxc-desktop CCDX xmpp reestr nextcloud zstd LXQt CLDXE xpak firmware instagram plymouth matrix IRC Matrix XMPP bridge

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

Добавил(а) Iurii Blokhin около 13 лет назад

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

qr-web.png (879 байта)

qr-calclinux.png (317 байта)


Комментарии

Comment

Добавил(а) Сергей Сиделев около 13 лет назад

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

Comment

Добавил(а) Iurii Blokhin около 13 лет назад

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

Спасибо!