Conversation
qrencode
Show content

@mnnwvn @ru Есть утилита qrencode, я для себя одну английскую статью переводил, свой частичный перевод добавляю в ответ ☺️😉

QR-коды способны на многое.

Лучше воздержаться от использования онлайн-сервисов по созданию QR-кодов:

  • Это не безопасно
  • Это зависимость от интернета
  • С моими данными могут делать всё

Утилита qrencode позволяет создавать скрипты и псевдонимы для программного создания QR-кодов.

QR-код может инициировать действия:

  • отображение текста
  • навигация к точке по карте
  • звонок по телефону
  • отправка SMS
  • отправка e-mail
  • открытие URL
  • добавление контакта в адресную книгу
  • добавление события в календарь
  • подключение к сети Wi-Fi

Установка Ubuntu sudo apt-get install qrencode

Fedora sudo dnf install qrencode

Manjaro sudo pacman -Sy qrencode

Параметры утилиты Есть 2 набора параметров, передаваемых в qrencode:

  • для создания и кодирования кодов
  • для определения данных, содержащихся в коде

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

Ключевые слова и имена полей определяют тип закодированного контента и позволяют программному обеспечению сканирования определить, что ему следует делать с полученной информацией.

ИСПОЛЬЗОВАНИЕ Текстовые коды Простейший вид QR-кодов содержит обычный текст. Передаваемые в qrencode параметры:

  • -s 6 : устанавливает размер блоков в клетчатом узоре QR-кода. Указанное вами число задаёт размер в пикселях длины одной стороны блока.
  • -l H : устанавливает уровень исправления ошибок для разных степеней повреждения или неразборчивости кода. Чем выше больше исправлений ошибок, тем больше итоговый код. Варианты:
    • «L»: низкий уровень (до 7% скрыто или повреждено)
    • «M»: средний уровень (до 15%)
    • «Q»: высокий уровень (до 25%)
    • «H»: наивысший (до 30%)
  • -o «text.png» : опция вывода позволяет вам установить имя сгенерированного изображения. По умолчанию это PNG, но с использованием опции -t (тип), можно установить EPS, SVG и много ANSI…
  • Текст указывается последним и заключается в кавычки

Пример: qrencode -s 6 -l H -o "text.png" "This type of QR holds plain text. This text is shown to the user when they scan the QR code. No other action is automatically triggered." Такая команда создаст следующий QR-код:

Добавление цвета

Цвет рисунка и фона добавляется параметрами --foreground и, соответственно, --background. Цвета можно задавать в моделях RGB (six hexadecimal digit notation) или в RGBA (eight hexadecimal digit notation). пример Сам код будет отрисован оттенком синего, а фон будет белым.

qrencode -s 6 -l H –foregound=”3599FE” –background=”FFFFFF” -o “blue.png” “This QR code will be blue and white.”

По такому запросу будет выведено следующее изображение: Важно: для корректного распознавания кода, цвет самого узора из квадратиков должен быть контрастным относительно цвета фона.

Местоположение в QR-коде: В QR-коде можно легко сохранить какие-либо географические координаты:

  • Информация должна начинаться с ключевого слова geo.
  • Используйте “:” чтобы разделить ключевое слово и сами данные местоположения.
  • Местоположение должно быть указано в цифровых градусах (дробная часть отделена через “.”).
  • Не оставляйте пробелов по всей строке и используйте “,” между значениями широты и долготы. Предыдущие параметры те же. В случае отсутствия изменений файл с кодом будет перезаписан.

    qrencode -s 6 -l H -o “geo.png” “geo:51.185013,-1.859105”

В результате создаётся этот QR-код. Место действия — вход на автостоянку Стоунхенджа.

Номер телефона в QR Создаётся по ключевому слову tel, далее “:”, в самом номере не рекомендуется использовать скобки, дефисы и, вероятно, другие знаки препинания, поскольку приложение для считывания может запутаться.

Ввод

qrencode -s 6 -l H -o “phone.png” “tel:5555555555”

Приведёт к выводу следующего кода: При сканировании, вероятно, предложат создать контакт или позвонить.

Отправка электронной почты Существует и такая возможность, сканер предложит отправить письмо, а в код можно поместить адрес получателя, тему и тело письма.

  • Ключевое слово mailto:
  • Флаг "?subject= (без пробелов до и после) — тема письма
  • Флаг ?body= (без пробелов до и после) — тело письма

Пример

qrencode -s 6 -l H -o “email.png” “mailto:contact@cloudsavvyit.com?subject=Linux&body=Linux articles are cool.”

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

QR-код сайта При создании обязательно использовать http: / https:

qrencode -s 6 -l H -o “URL.png” “https://cloudsavvyit.com”

Отправка SMS/MMS Механизм отправки идентичен; ключевое слово smsto:, далее номер адресата, запятая и без пробела сообщение.

qrencode -s 6 -l H -o “SMS.png” “smsto:5555555555,This is the text of the SMS message.”

Подключение к Wi-Fi Ключевое слово WIFI:, далее параметры:

  • T: — тип безопасности. Может быть WEP, WPA, WPA2. Затем “;”.
  • S: — SSID, затем ставим “;”.
  • P: — пароль, заканчиваем двумя точками с запятыми, то есть “;;”.

    qrencode -s 6 -l H -o “wifi.png” “WIFI:T:WPA;S:«SSID»;P:«PSWD»;;”

Укажите свой настоящий SSID и ключ безопасности там, где в команде появляются «SSID» и «PSWD». QR-код выглядит следующим образом (в оригинале использовались “<” и “>” вместо кавычек):

Добавление контакта при помощи QR-кода формата vCard Контактные данные в формате vCard можно зашить в QR-код, это исключит риск опечаток. Поскольку в этом формате много буков, сохраним всё в текстовый файл “contact.txt” и перенаправили этот текстовый файл в qrencode.

BEGIN:VCARD

VERSION:2.1

N:McKay,D

FN:Dave McKay

TEL;TYPE=voice,cell,pref:5555555555

TITLE:Journalist

ORG:CloudSavvyIT

EMAIL:dave@madeupdomain.com

URL:www.cloudsavvyit.com

END:VCARD

Перенаправить этот файл в qrencode мы можем так: qrencode -s 6 -l H -o "contact.png" < contact.txt Получается самый большой QR-код здесь, поскольку он содержит больше информации и использует высочайший уровень исправления ошибок.

Добавление события в календарь Добавление события в календарь очень напоминает добавление контакта. Мы также создадим, а потом перенаправим файл “event.txt”

BEGIN:VEVENT

SUMMARY:Works Picnic

DESCRIPTION:Fun, food, and games in the sun

LOCATION:Eastwood Park

DTSTART:20210710T103000

DTEND:20210710T154500

END:VEVENT

И теперь qrencode -s 6 -l H -o "event.png" < event.txt делает нам

HELP qrencode version 4.1.1 Copyright (C) 2006-2017 Kentaro Fukuchi Usage: qrencode [-o FILENAME] [OPTION]… [STRING] Encode input data in a QR Code and save as a PNG or EPS image.

-h, –help display the help message. -h displays only the help of short

           options.

-o FILENAME, –output=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)

-r FILENAME, –read-from=FILENAME

           read input data from FILENAME.

-s NUMBER, –size=NUMBER

           specify module size in dots (pixels). (default=3)

-l {LMQH}, –level={LMQH}

           specify error correction level from L (lowest) to H (highest).
           (default=L)

-v NUMBER, –symversion=NUMBER

           specify the minimum version of the symbol. See SYMBOL VERSIONS
           for more information. (default=auto)

-m NUMBER, –margin=NUMBER

           specify the width of the margins. (default=4 (2 for Micro QR)))

-d NUMBER, –dpi=NUMBER

           specify the DPI of the generated PNG. (default=72)

-t {PNG,PNG32,EPS,SVG,XPM,ANSI,ANSI256,ASCII,ASCIIi,UTF8,UTF8i,ANSIUTF8,ANSIUTF8i,ANSI256UTF8}, –type={PNG,PNG32,EPS,SVG,XPM,ANSI,ANSI256,ASCII,ASCIIi,UTF8,UTF8i,ANSIUTF8,ANSIUTF8i,ANSI256UTF8}

           specify the type of the generated image. (default=PNG)

-S, –structured

           make structured symbols. Version must be specified with '-v'.

-k, –kanji assume that the input text contains kanji (shift-jis).

-c, –casesensitive

           encode lower-case alphabet characters in 8-bit mode. (default)

-i, –ignorecase

           ignore case distinctions and use only upper-case characters.

-8, –8bit encode entire data in 8-bit mode. -k, -c and -i will be ignored.

-M, –micro encode in a Micro QR Code.

  --rle    enable run-length encoding for SVG.

  --svg-path
           use single path to draw modules for SVG.

  --inline only useful for SVG output, generates an SVG without the XML tag.

  --foreground=RRGGBB[AA]
  --background=RRGGBB[AA]
           specify foreground/background color in hexadecimal notation.
           6-digit (RGB) or 8-digit (RGBA) form are supported.
           Color output support available only in PNG, EPS and SVG.

  --strict-version
           disable automatic version number adjustment. If the input data is
           too large for the specified version, the program exits with the
           code of 1.

-V, –version

           display the version number and copyrights of the qrencode.

  --verbose
           display verbose information to stderr.

[STRING] input data. If it is not specified, data will be taken from

           standard input.

SYMBOL VERSIONS

           The symbol versions of QR Code range from Version 1 to Version
           40. Each version has a different module configuration or number
           of modules, ranging from Version 1 (21 x 21 modules) up to
           Version 40 (177 x 177 modules). Each higher version number
           comprises 4 additional modules per side by default. See
           http://www.qrcode.com/en/about/version.html for a detailed
           version list.
1
0
2

@mnnwvn по ссылке на моём (не прямо моём, просто на том, с которого я отправил) инстансе есть картинки в тексте, если интересно можно посмотреть

0
0
2
@mnnwvn там ничего сложного, главное не забывать, что QR-код или текст его расшифровки сохраняется в той папке, в которой открыт терминал.

Это очевидно вроде, но я как-то раз забыл об этом
0
0
1