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

QR‑код — это двумерный штрихкод, который хранит текстовую информацию и читается камерой смартфона или специальными сканерами. Он широко используется для платежей, быстрой передачи контактов, подключения к Wi‑Fi и других задач. В Linux для генерации QR‑кодов удобен инструмент qrencode — простой консольный генератор, который создаёт PNG и другие форматы.
В этом материале вы найдёте пошаговую инструкцию по установке qrencode, объяснение ключевых опций, готовые команды для распространённых случаев и разделы по отладке, безопасности и шаблонам.
Установка qrencode в Linux
Установка зависит от дистрибутива. Выполните одну из команд в терминале, соответствующую вашей системе:
Ubuntu и производные:
sudo apt install qrencodeFedora:
sudo dnf install qrencodeArch Linux / Manjaro:
sudo pacman -S qrencodeopenSUSE:
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Примеры базового использования
Генерация простого текста в PNG:
qrencode -s 9 -l H -o "QR-code.png" "This is a test QR code!"Эта команда создаст файл QR-code.png в текущей директории, модуль размера 9 пикселей и высокий уровень коррекции H.
Проверка созданного QR‑кода
Проверить содержимое QR‑кода можно двумя способами:
С помощью смартфона: откройте изображение на экране компьютера и отсканируйте камерой или приложением-сканером (на iPhone встроено в камеру; на Android можно использовать любое приложение для чтения QR).
Локально в 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:VCARD4) 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-toolsSOP: Быстрая инструкция для создания и проверки QR‑кода (короткий playbook)
- Установите qrencode (см. раздел «Установка»).
- Сформируйте строку данных (URL, WIFI, vCard и т.д.).
- Сгенерируйте PNG: qrencode -s 9 -l H -o out.png “<данные>”
- Локально декодируйте: zbarimg –raw out.png (или отсканируйте телефоном).
- Если всё верно — используйте файл (публикация, печать, рассылка).
- Для публичного распространения: избегайте встраивания паролей/секретов в общедоступные изображения.
Чеклисты по ролям
Пользователь (создатель 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 и хранить сгенерированные файлы в артефактах сборки.
Похожие материалы
Как перезаписывать файлы при загрузке в Chrome
Добавить "Новый файл" в Finder на macOS
Как включить заставку на Chromebook
Лучшие сабреддиты для вдумчивых обсуждений
SupportAssist не подключается к Интернету