Гид по технологиям

Как создавать QR‑коды в Linux с помощью qrencode

8 min read Linux Обновлено 13 Dec 2025
QR‑коды в Linux: руководство по qrencode
QR‑коды в Linux: руководство по qrencode

Обложка: пример QR‑кода и команды в терминале

Important: избегайте онлайн‑генераторов для личных данных — сохраняйте контроль над информацией локально.

Быстрые ссылки

  • QR‑коды
  • Примеры использования QR‑кодов
  • Установка qrencode
  • Опции qrencode
  • Примеры использования
  • Цвета в QR‑кодах
  • Номер телефона в QR‑коде
  • Отправка e‑mail через QR‑код
  • QR‑код для сайта
  • Добавление контакта
  • Событие календаря
  • Примеры применения и идеи

Что такое QR‑код

QR (quick response) — двумерный штрихкод, разработанный в 1994 году в Denso Wave. В отличие от классического штрихкода он хранит больше данных и автоматически ориентируется при сканировании. Это делает его удобным для использования на производстве, в маркетинге и в повседневных задачах: с помощью QR‑кода можно отображать текст, открывать URL, отправлять сообщения, добавлять контакты и события в календарь, а также передавать параметры Wi‑Fi.

Преимущество локального создания QR‑кодов в том, что вы контролируете содержимое. Онлайн‑сервисы часто сохраняют введённые данные и могут использовать их в аналитике — это риск для личной и конфиденциальной информации.

Когда QR‑код уместен и когда нет

  • Уместен: быстрый обмен ссылкой, приглашения на события, печатные материалы, наклейки на оборудование, обмен настройками Wi‑Fi с гостями.
  • Неуместен: передача сверхчувствительных данных (пароли без шифрования, банковские реквизиты) без дополнительных мер безопасности.

Установка qrencode

qrencode — быстрое и универсальное решение для генерации QR‑кодов и библиотека для встраивания в приложения.

Установка в популярных дистрибутивах:

# Ubuntu/Debian
sudo apt-get install qrencode

# Fedora
sudo dnf install qrencode

# Manjaro/Arch
sudo pacman -Sy qrencode

Проверьте установленную версию:

qrencode --version

Если вы используете контейнеры или CI, qrencode легко ставится в образ для генерации QR‑кодов на этапе сборки.

Основные опции qrencode — понятие и рекомендации

Ниже перечислены ключевые параметры и краткое объяснение их роли. Это поможет правильно подобрать настройки для печати, дисплея и автоматизации.

  • -s — размер одного «модуля» (квадратика) QR‑кода в пикселях. Чем больше значение, тем крупнее итоговое изображение.
  • -l — уровень коррекции ошибок: L, M, Q, H. Чем выше уровень (H — максимум), тем устойчивее код к повреждениям, но тем больше размер кода (больше модулей).
  • -o — имя выходного файла (по умолчанию PNG). Поддерживаются другие форматы через -t.
  • -t — тип выходного формата: PNG, SVG, EPS и др. Используйте SVG для векторной печати и масштабирования без потери качества.
  • –foreground, –background — цвета переднего плана и фона в шестнадцатеричной нотации (RGB или RGBA). Убедитесь в достаточном контрасте.
  • -v — версия QR (1–40). Позволяет задавать точный размер матрицы; обычно qrencode выбирает автоматом.
  • -m — ширина белой рамки (в модулях) вокруг кода; важна для корректного сканирования.

Советы:

  • Для печати на бумаге рекомендуем минимум -s 4–6 и margin 2–4, в зависимости от физического размера конечного изображения.
  • Для логотипов в центре QR используйте высокий уровень коррекции (Q или H) и тестируйте на реальных устройствах.

Использование: примеры и шаблоны

Ниже — расширенная подборка практических примеров: от простого текста до сценариев автоматизации. Каждый пример содержит описание, образец команды и шаблон, который можно адаптировать.

Простой текст

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

qrencode -s 6 -l H -o "text.png" "Это текст, который будет показан при сканировании QR‑кода."

Изображение: QR‑код с простым текстом и инструкцией

При сканировании текст извлекается и показывается в приложении.

Цвета и контраст

Устанавливайте цвета через –foreground и –background. Важно обеспечить достаточный контраст: светлый фон и тёмный передний план — оптимальный вариант.

qrencode -s 6 -l H --foreground="3599FE" --background="FFFFFF" -o "blue.png" "Этот QR‑код будет синим на белом фоне."

Изображение: QR‑код синего цвета на белом фоне

Note: Не используйте похожие цвета (например, тёмно‑синий на чёрном), уменьшайте прозрачность фона или добавляйте градиенты — это ухудшит распознавание.

Локация (геопозиция)

Формат: geo:LAT,LON (без пробелов). Мобильные приложения предложат открыть карту или проложить маршрут.

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

Изображение: QR‑код для геолокации — вход на парковку возле Стоунхенджа

Телефон

Формат: tel:NUMBER (без пробелов и пунктуации). При сканировании устройство предложит позвонить.

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

Изображение: QR‑код с телефоном, предлагающий позвонить при сканировании

Отправка e‑mail

Используйте mailto:ADDRESS?subject=…&body=… — кодирует адрес, тему и тело письма. Экранируйте специальные символы (%20 для пробела).

qrencode -s 6 -l H -o "email.png" "mailto:contact@example.com?subject=Linux&body=Статья%20о%20QR%2Dкодах"

Изображение: QR‑код, формирующий письмо при сканировании

Ссылка на веб‑сайт (URL)

Просто кодируйте http(s) адрес. Большинство сканеров предложат открыть ссылку в браузере.

qrencode -s 6 -l H -o "url.png" "https://example.com"

Изображение: QR‑код, ведущий на веб‑страницу

SMS / MMS

Формат: smsto:NUMBER,Message (без пробелов вокруг запятой). При выборе предложения приложение откроет форму отправки сообщения.

qrencode -s 6 -l H -o "sms.png" "smsto:5555555555,Это%20текст%20SMS%20сообщения"

Изображение: QR‑код для отправки SMS

Подключение к Wi‑Fi

Формат: WIFI:T:;S:;P:;;

  • T — тип безопасности: WEP, WPA, WPA2 (часто используется WPA или WPA2).
  • S — SSID сети.
  • P — пароль.
qrencode -s 6 -l H -o "wifi.png" "WIFI:T:WPA;S:GuestNetwork;P:guestpassword123;;"

Изображение: QR‑код для подключения к Wi‑Fi — сканирование предлагает подключиться

Совет: избегайте явной передачи паролей в открытой форме для долгоживущих сетей. Для гостевых сетей это удобно.

vCard — добавление контакта

Формат vCard позволяет передать структурированные контактные данные. Лучше сохранять vCard в файл и перенаправлять его в qrencode.

Пример файла contact.txt:

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:https://www.cloudsavvyit.com
END:VCARD

Команда:

qrencode -s 6 -l H -o "contact.png" < contact.txt

Изображение: QR‑код с контактной информацией в формате vCard

При сканировании смартфон предложит добавить контакт и распознает телефон и почту.

Событие календаря

Формат события похож на iCalendar. Сохраните в файл и перенаправьте в qrencode.

Пример event.txt:

BEGIN:VEVENT
SUMMARY:Корпоративный пикник
DESCRIPTION:Еда, игры, общение на свежем воздухе
LOCATION:Eastwood Park
DTSTART:20210710T103000
DTEND:20210710T154500
END:VEVENT

Команда:

qrencode -s 6 -l H -o "event.png" < event.txt

Изображение: QR‑код с событием календаря

Пользователь сможет добавить событие в календарь на своём устройстве.

Автоматизация и сценарии (шаблоны)

Ниже — примеры полезных скриптов и шаблонов для практического использования.

1. Генерация QR из CSV для массовой рассылки контактов или билетов

Формат CSV: type,data,filename

Пример data: для URL — https://…, для wifi — WIFI:…, для vCard — файл с содержимым.

Простой bash‑скрипт:

#!/bin/bash
# generate_qr_from_csv.sh
# CSV: type,data,filename
while IFS=, read -r type data filename; do
  qrencode -s 6 -l H -o "$filename" "$data"
done < items.csv

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

2. Скрипт для генерации Wi‑Fi QR с подтверждением

#!/bin/bash
read -p "SSID: " ssid
read -s -p "Password: " pass
echo
qrencode -s 8 -l H -o "wifi_${ssid}.png" "WIFI:T:WPA;S:${ssid};P:${pass};;"
echo "QR создан: wifi_${ssid}.png"

3. Бэч для встраивания логотипа (пример концепта)

Вставка логотипа требует обработки изображений (ImageMagick). Подход: сгенерировать QR с высоким уровнем коррекции (H), затем наложить логотип в центре и проверить читаемость.

# нужно установить imagemagick
qrencode -s 10 -l H -o qr_big.png "https://example.com"
convert qr_big.png logo.png -gravity center -composite qr_with_logo.png

Внимание: после операции обязательно протестируйте QR на нескольких устройствах.

Проверка и отладка — что делать, если QR не читается

Проблемы и решения:

  • Плохой контраст: увеличьте разницу между foreground и background.
  • Слишком мелкий размер: увеличьте -s или используйте SVG для масштабирования.
  • Логотип перекрывает важные модули: увеличьте уровень коррекции ошибок до H.
  • Неправильные символы в URL/параметрах: кодируйте пробелы и спецсимволы (URL‑encoding).
  • Качество печати: убедитесь, что разрешение печати и DPI достаточны, у белой рамки (margin) есть пространство.
  • Старые сканеры: проверяйте на разных смартфонах (iOS/Android) и разных приложениях.

Тестовый чеклист перед печатью или распространением:

  • Сканируется ли с экрана и с печати?
  • Открывает ли корректный ресурс (URL, контакт, Wi‑Fi)?
  • Сохраняется ли читаемость при уменьшении/увеличении размера?
  • Нужен ли альтернативный вариант (например, короткий URL) для низкого разрешения печати?

Роли и чек‑листы

Маркетолог:

  • Убедиться в правовой стороне использования данных (персональные данные).
  • Подготовить короткий целевой URL (редирект) для аналитики.
  • Тестировать на iOS и Android.

Системный администратор:

  • Использовать локальные скрипты для генерации гостевых Wi‑Fi QR.
  • Хранить секреты отдельно и не встраивать пароли в публично доступные изображения.

Организатор мероприятия:

  • Подготовить QR для регистрации/карты/расписания.
  • Распечатать контрольный набор для испытаний.

Дизайнер/печать:

  • Проверить контраст и отступы.
  • Предпочитать векторный формат для больших афиш (SVG/EPS).

Практические шаблоны (копировать/вставить)

Wi‑Fi шаблон:

WIFI:T:WPA;S:MySSID;P:MyPassword123;;

vCard шаблон:

BEGIN:VCARD
VERSION:3.0
N:Иванов;Иван
FN:Иван Иванов
TEL;TYPE=CELL:+71234567890
EMAIL:ivan@example.com
ORG:Компания
END:VCARD

event (iCalendar) шаблон:

BEGIN:VEVENT
SUMMARY:Встреча команды
DESCRIPTION:Стратегическая сессия
LOCATION:Офис
DTSTART:20251201T100000
DTEND:20251201T120000
END:VEVENT

Безопасность и конфиденциальность

  • Никогда не размещайте в QR‑коде незащищённые пароли или токены длительного действия.
  • Для одноразовых доступов используйте гостевые Wi‑Fi с короткими паролями или expiring links.
  • Храните данные для генерации локально и ограничьте доступ к скриптам генерации.
  • Для передачи чувствительных данных рассматривать шифрование или защищённые ссылки с авторизацией.

Примечание по GDPR и персональным данным: если QR‑код содержит личные данные граждан ЕС, следует соблюдать требования минимизации данных и информировать пользователей о цели обработки.

Когда QR‑код будет неэффективен — примеры неудач

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

Методология быстрого внедрения (mini‑method)

  1. Определите цель (URL, контакт, Wi‑Fi и т. п.).
  2. Подготовьте содержимое и проверьте корректность (экранирование символов).
  3. Выберите уровень коррекции ошибок (M для экранов, H если добавляете логотип или печатаете наклейки).
  4. Сгенерируйте в векторе для печати больших форматов, в PNG для экранов.
  5. Протестируйте на реальных устройствах и в печати.
  6. Внесите правки и повторно протестируйте.

Критерии приёмки

  • QR‑код корректно сканируется на iOS и Android (как минимум по двум приложениям).
  • Содержимое (ссылка/контакт/сеть) открывается и выполняет ожидаемое действие.
  • Для печати — проверено на финальном материале (бумага/наклейка) и устройстве печати.

Глоссарий (1‑строчные определения)

  • QR: двумерный штрихкод для быстрых ответов.
  • vCard: формат для обмена контактными данными.
  • iCal/VEVENT: формат для событий календаря.
  • ECC (error correction): механизм восстановления данных при частичном повреждении QR‑кода.

Итоги

QR‑коды — универсальный инструмент для передачи данных и быстрого взаимодействия с пользователями. qrencode даёт полный контроль, работает локально и легко автоматизируется. При правильном выборе параметров, цветов и тестировании код будет надёжно работать как на экране, так и в печати.

Ключевые рекомендации:

  • Держите данные чувствительного характера вне публичных QR‑кодów.
  • Тестируйте на целевых устройствах и в конечных носителях печати.
  • Используйте векторные форматы для масштабируемого дизайна и высокое исправление ошибок при наложении логотипов.

Short announcement: Для быстрого создания безопасных QR‑кодов в Linux используйте qrencode — устанавливается через пакетный менеджер, поддерживает все популярные форматы (URL, vCard, Wi‑Fi, события) и легко автоматизируется.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро