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

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

6 min read Linux Обновлено 15 Dec 2025
Создать QR‑код в Linux с qrencode
Создать QR‑код в Linux с qrencode

Сканирование QR-кода, сгенерированного в Linux

QR‑код — это двумерный штрихкод, который хранит текстовую информацию и читается камерой смартфона или специальными сканерами. Он широко используется для платежей, быстрой передачи контактов, подключения к Wi‑Fi и других задач. В Linux для генерации QR‑кодов удобен инструмент qrencode — простой консольный генератор, который создаёт PNG и другие форматы.

В этом материале вы найдёте пошаговую инструкцию по установке qrencode, объяснение ключевых опций, готовые команды для распространённых случаев и разделы по отладке, безопасности и шаблонам.

Установка qrencode в Linux

Установка зависит от дистрибутива. Выполните одну из команд в терминале, соответствующую вашей системе:

Ubuntu и производные:

sudo apt install qrencode

Fedora:

sudo dnf install qrencode

Arch Linux / Manjaro:

sudo pacman -S qrencode

openSUSE:

sudo zypper install qrencode

После установки команда qrencode будет доступна в терминале. Если вы планируете автоматически проверять или декодировать коды на сервере, полезно установить утилиту zbarimg (пакет zbar) для локального декодирования.

Основные опции qrencode

Короткое объяснение ключевых флагов, которые понадобятся чаще всего:

  • -o filename — задать имя выходного файла (например, -o qr.png).
  • -s size — размер модуля в пикселях (по умолчанию 3). Увеличение делает код более крупным и удобным для печати.
  • -l error_correction_level — уровень коррекции ошибок: L (7%), M (15%), Q (25%), H (30%). Чем выше, тем устойчивее к повреждениям, но код становится плотнее.
  • -t filetype — формат выходного файла (png по умолчанию). Поддерживаемые форматы зависят от сборки.

Для просмотра всех опций используйте:

qrencode --help

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

Примеры базового использования

Генерация простого текста в PNG:

qrencode -s 9 -l H -o "QR-code.png" "This is a test QR code!"

Эта команда создаст файл QR-code.png в текущей директории, модуль размера 9 пикселей и высокий уровень коррекции H.

Проверка созданного QR‑кода

Проверить содержимое QR‑кода можно двумя способами:

  1. С помощью смартфона: откройте изображение на экране компьютера и отсканируйте камерой или приложением-сканером (на iPhone встроено в камеру; на Android можно использовать любое приложение для чтения QR).

  2. Локально в Linux — с помощью zbarimg (если установлен):

zbarimg QR-code.png

Команда выведет тип кода и закодированную строку.

Важно: при проверке учитывайте контраст (тёмный рисунок на светлом фоне), размер и «тихую зону» (пустой край вокруг кода). Если код не сканируется, попробуйте увеличить -s, понизить уровень коррекции или изменить формат вывода.

Частые шаблоны данных для QR

Ниже — готовые команды для распространённых задач. Меняйте параметры (имя файла, SSID, телефон, email и т.д.) под свои данные.

1) URL

qrencode -s 9 -l H -o "URL.png" "https://www.makeuseof.com"

2) SMS (автозаполнение)

qrencode -s 9 -l H -o "SMS.png" "SMSTO:+XX-XXXXXXXXXX:Hi"

Если после двоеточия оставить пустое поле, при сканировании пользователю будет предложено ввести текст вручную.

3) vCard (контакт)

Создайте файл vcard.txt с содержимым vCard, затем перенаправьте его в qrencode:

qrencode -s 9 -l H -o "contact_card.png" < vcard.txt

Пример минимальной vCard (RFC 6350/2761 совместимые поля):

BEGIN:VCARD
VERSION:3.0
N:Doe;John
FN:John Doe
ORG:Example Inc.
TITLE:Engineer
TEL;TYPE=voice,work,pref:+1-555-123-4567
EMAIL:john.doe@example.com
END:VCARD

4) Wi‑Fi (автоподключение)

qrencode -s 9 -l H -o "WiFi-details.png" "WIFI:S:MySSID;T:WPA2;P:my_password;;"

Поле T может быть WPA, WEP, или оставлено пустым для открытой сети. При сканировании смартфон предложит подключиться к сети.

5) Email (mailto)

qrencode -s 9 -l H -o "email.png" "mailto:me@example.com?subject=Subject&body=Body"

6) WhatsApp

qrencode -s 9 -l H -o "WhatsApp-Me.png" "https://wa.me/15551234567"

Замените номер на международный формат без плюса и пробелов.

Когда QR‑код может не читаться — распространённые причины и решения

  • Слишком маленький размер (увеличьте -s).
  • Слишком высокий уровень коррекции при большом объёме данных (попробуйте снизить уровень -l).
  • Низкий контраст или цветной фон (используйте чёрный на белом или обратимые цвета с достаточным контрастом).
  • Отсутствие «тихой зоны» (оставьте чистый край вокруг кода).
  • Печать на блестящей поверхности с бликом — измените материал или размер.
  • Сканер старой версии не поддерживает код высокого уровня версии (обновите приложение).

Отладка и локальная валидация

  • Используйте zbarimg или libdecodeqr для локального декодирования и автоматической проверки.
  • Откройте PNG в любом просмотрщике изображений и убедитесь, что виден весь код и «тихая зона».
  • Для печати сделайте пробный отпечаток и попытайтесь отсканировать с того расстояния, с которого будут сканировать пользователи.

Пример локальной проверки:

# декодировать и вывести только полезную строку
zbarimg --raw QR-code.png

Если zbarimg не установлен:

# Ubuntu/Debian
sudo apt install zbar-tools

SOP: Быстрая инструкция для создания и проверки QR‑кода (короткий playbook)

  1. Установите qrencode (см. раздел «Установка»).
  2. Сформируйте строку данных (URL, WIFI, vCard и т.д.).
  3. Сгенерируйте PNG: qrencode -s 9 -l H -o out.png “<данные>”
  4. Локально декодируйте: zbarimg –raw out.png (или отсканируйте телефоном).
  5. Если всё верно — используйте файл (публикация, печать, рассылка).
  6. Для публичного распространения: избегайте встраивания паролей/секретов в общедоступные изображения.

Чеклисты по ролям

Пользователь (создатель QR):

  • Проверил содержимое через zbarimg или смартфон.
  • Увеличил модуль (-s) для печати.
  • Проверил контраст и тихую зону.
  • Убедился, что не публикует приватные пароли в открытом доступе.

Системный администратор / маркетолог:

  • Подготовил шаблоны (vCard, Wi‑Fi) и хранил пароли в безопасном хранилище.
  • Автоматизировал генерацию в CI при необходимости.
  • Рассмотрел использование коротких URL или динамических перенаправлений для обновляемых QR.

Безопасность и приватность

  • QR‑код — просто контейнер для текста. Если вы включаете в код пароли, токены или другую чувствительную информацию, любой, кто получит изображение, сможет её прочитать.
  • Для временного доступа используйте одноразовые пароли или смену пароля после широкой рассылки.
  • При использовании vCard с личными данными убедитесь, что согласие получено и соблюдены требования приватности (GDPR или местные правила).
  • Для публичных кампаний лучше кодировать URL, ведущие на контролируемый сервер, где можно реализовать логику проверки доступа.

Альтернативные инструменты и подходы

  • Веб‑сервисы (например, онлайн-генераторы) позволяют быстро получить код, но требуют передачи данных третьей стороне — риск конфиденциальности.
  • Библиотеки на Python/Node.js (qrcode, pyqrcode) дают гибкость и возможность интеграции в приложения и бекенд.
  • Для печати больших панно и 3D‑печати используйте экспорт в вектор (SVG) — qrencode может генерировать PNG; для SVG пригодятся другие инструменты/библиотеки.

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

Перед публикацией или печатью QR‑кода убедитесь, что выполнены следующие пункты:

  • Код декодируется корректно с трёх разных устройств (iOS, Android, один старый телефон при возможности).
  • При печати код читается с целевого расстояния.
  • Нет утечек паролей или личных данных, если контент будет публичным.
  • Для Wi‑Fi‑QR — автоматическое подключение подтверждено на основных платформах.

Шаблоны и «cheat sheet» команд

Короткие шаблоны для быстрого копирования:

# Текст
qrencode -s 6 -l M -o "text.png" "Любой текст"

# URL
qrencode -s 8 -l M -o "site.png" "https://example.com"

# Wi-Fi
qrencode -s 9 -l H -o "wifi.png" "WIFI:S:SSID_NAME;T:WPA;P:password123;;"

# vCard из файла
qrencode -s 9 -l M -o "vcard.png" < vcard.txt

# SMS
qrencode -s 9 -l M -o "sms.png" "SMSTO:+11234567890:Hello"

# Email
qrencode -s 9 -l M -o "mail.png" "mailto:me@example.com?subject=Hi&body=Hello"

Примеры неудач — когда стоит искать альтернативу

  • Нужно динамически менять ссылку (например, отслеживать сканы): используйте редирект с короткого домена и меняйте целевой URL без перепечатывания QR.
  • Требуется встраивание логики (параметры, A/B‑тесты): генерируйте URL на сервере и кодируйте его.
  • Необходим векторный формат для высококачественной печати: используйте библиотеки, которые экспортируют SVG.

1‑строчный глоссарий

  • Модуль — маленький квадрат в QR‑коде.
  • Тихая зона — пустая рамка вокруг кода, необходимая для корректного сканирования.
  • Уровень коррекции — насколько повреждённый код остаётся читаемым (L, M, Q, H).

Итог и рекомендации

Генерация QR‑кодов в Linux с помощью qrencode проста и гибка: достаточно установить пакет, подобрать нужный формат данных и параметры (-s, -l, -o) и проверить результат локально. Для печати увеличьте размер модулей и убедитесь в достаточном контрасте. Если вы делаете публичные QR‑кампании, задумайтесь о конфиденциальности и использовании контролируемых URL.

Важно: при распространении QR‑кодов с конфиденциальной информацией применяйте одноразовые или ротационные учётные данные.

Короткая памятка: сгенерировали — проверили — распечатали/опубликовали.

Заметка: при необходимости интеграции генерации в скрипты/CI можно вызывать qrencode из shell и хранить сгенерированные файлы в артефактах сборки.

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

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

Как перезаписывать файлы при загрузке в Chrome
Браузеры

Как перезаписывать файлы при загрузке в Chrome

Добавить "Новый файл" в Finder на macOS
macOS

Добавить "Новый файл" в Finder на macOS

Как включить заставку на Chromebook
Руководство

Как включить заставку на Chromebook

Лучшие сабреддиты для вдумчивых обсуждений
Reddit

Лучшие сабреддиты для вдумчивых обсуждений

SupportAssist не подключается к Интернету
Техническая поддержка

SupportAssist не подключается к Интернету

Удалите почтовый клиент с телефона
Продуктивность

Удалите почтовый клиент с телефона