Python: уроки, справочник и задачи

Python QR Code

Раздел: Модули и библиотеки Python · Обновлено 31.10.2026

QR-код (Quick Response code) - это двухмерный штрихкод, который позволяет передавать информацию при помощи оптического сканирования. В данной статье мы рассмотрим создание и использование QR-кодов с помощью Python.

Python QR Code
Фото: Donald Trung Quoc Don (Chữ Hán: 徵國單) - Wikimedia C / CC BY-SA 4.0, Wikimedia Commons
Содержание статьи
  1. Что такое QR-код?
  2. Установка модуля qrcode в виртуальное окружение
  3. Задача 1. Создание QR-кода на Python
  4. Задача 2. Создание QR-кода в SVG-формате
  5. Задача 3. Создание QR-кода в текстовом виде
  6. Задача 4. Стилизация изображения с QR-кодом

Что такое QR-код?

QR-код (Quick Response code) - это двухмерный штрихкод, который был разработан японской компанией Denso Wave в 1994 году. Он представляет собой квадратную матрицу из черных модулей, расположенных на белом фоне. QR-код может содержать различные типы информации, такие как текст, URL-адреса, контактные данные, географические координаты и другую информацию.

Основные характеристики QR-кода:

  1. Емкость: QR-код имеет высокую емкость по сравнению с одномерными штрихкодами. Он может содержать до нескольких тысяч символов, в зависимости от версии и уровня коррекции ошибок.
  2. Коррекция ошибок: QR-код содержит встроенный механизм коррекции ошибок, что позволяет восстановить данные даже при наличии некоторых повреждений.
  3. Многообразие данных: QR-код может содержать различные типы данных, начиная от простого текста и заканчивая ссылками на веб-страницы, контактными данными, Wi-Fi настройками и даже бинарными файлами.
  4. Использование: QR-коды широко применяются для различных целей, таких как реклама, маркетинг, упаковка товаров, билеты, идентификация продукции, электронные платежи и многое другое.
  5. Сканирование: Для чтения информации из QR-кода требуется устройство с камерой и специальное программное обеспечение - сканер QR-кодов. Современные мобильные устройства обычно имеют встроенные сканеры, что делает процесс сканирования QR-кодов легким и удобным.

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

Установка модуля qrcode в виртуальное окружение

Для создания QR-кодов в Python нам понадобится установить модуль qrcode. Мы можем выполнить это, используя pip команду:

pip install qrcode

Задача 1. Создание QR-кода на Python

Пример создания простого QR-кода на Python:

import qrcode
data = "Hello, World!"
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data(data)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save("my_qr_code.png")

Создание QR-кода на Python с использованием библиотеки qrcode относительно просто, и вы можете легко настраивать различные аспекты QR-кода, такие как содержимое, цвета, размер и другие параметры.

Задача 2. Создание QR-кода в SVG-формате

  1. Импорт необходимых модулей:
    • Импортируйте классы QRCode и constants из библиотеки qrcode.
    • Убедитесь, что библиотека qrcode установлена в вашем виртуальном окружении.
  2. Создание QR-кода в SVG-формате:
    • Используйте параметр make_image() с указанием формата "svg" для создания QR-кода в SVG-формате.
    • Сохраните полученное изображение в файл с расширением .svg.

Пример кода для создания QR-кода в SVG-формате:

import qrcode
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data("https://www.example.com")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save("example.svg")
  1. Параметры QR-кода в SVG:
    • При создании объекта QRCode можно задать различные параметры, такие как версия (размер), уровень коррекции ошибок, размер ячейки и ширина бордюра.
    • Метод add_data() используется для добавления данных в QR-код.
    • Метод make(fit=True) генерирует QR-код с учётом параметров.
  2. Сохранение и использование:
    • Сгенерированный QR-код в SVG-формате сохраняется в файле example.svg.
    • Вы можете открыть этот файл в любом редакторе SVG или веб-браузере для просмотра QR-кода.

При создании QR-кода в SVG-формате с помощью библиотеки qrcode на Python, вы можете легко сохранить его в векторном формате, что позволяет масштабировать изображение без потери качества и использовать его в различных веб- и графических приложениях.

Задача 3. Создание QR-кода в текстовом виде

Для создания QR-кода в текстовом виде на Python с помощью библиотеки qrcode, следуйте этим шагам:

  1. Импорт необходимых модулей:
    • Импортируйте классы QRCode и constants из библиотеки qrcode.
    • Убедитесь, что библиотека qrcode установлена в вашем виртуальном окружении.
  2. Создание QR-кода в текстовом виде:
    • Используйте метод get_matrix() для получения матрицы QR-кода.
    • Преобразуйте матрицу в текстовое представление, где символы "1" соответствуют залитой ячейке, а символы "0" - пустой ячейке.

Пример кода для создания QR-кода в текстовом виде:

import qrcode
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=5,
    border=4,
)
qr.add_data("Text QR Code")
qr.make(fit=True)
matrix = qr.get_matrix()
for row in matrix:
    print("".join(["█" if module else " " for module in row]))
  1. Параметры QR-кода в текстовом виде:
    • При создании объекта QRCode можно задать различные параметры, такие как версия (размер), уровень коррекции ошибок, размер ячейки и ширина бордюра.
    • Метод add_data() используется для добавления данных в QR-код.
    • Метод make(fit=True) генерирует QR-код с учётом параметров.
  2. Отображение QR-кода в текстовом виде:
    • В приведенном примере QR-код отображается в виде текстового рисунка, где символ "█" представляет заполненную ячейку, а пробел - пустую ячейку.

Создание QR-кода в текстовом виде на Python с использованием библиотеки qrcode позволяет вам получить текстовое представление QR-кода, которое может быть использовано для вывода информации в консоли или других текстовых средах.

Задача 4. Стилизация изображения с QR-кодом

Для стилизации изображения с QR-кодом на Python с использованием библиотеки qrcode, вы можете изменить цвета, добавить логотип или фоновое изображение. Вот как можно стилизовать изображение с QR-кодом подробнее:

  1. Изменение цветов:
    • Используйте параметры fill_color и back_color при создании изображения QR-кода для изменения цвета модулей и фона соответственно.
img = qr.make_image(fill_color="red", back_color="white")
  1. Добавление логотипа:
    • Вы можете добавить логотип на изображение QR-кода, чтобы индивидуализировать его.
    • Обычно логотип размещается в центре QR-кода.
from PIL import Image
qr_img = qr.make_image(fill_color="black", back_color="white")
logo = Image.open("logo.png")
qr_img.paste(logo, (50, 50))  # координаты расположения логотипа
  1. Использование фонового изображения:
    • Можно добавить фоновое изображение за QR-кодом для улучшения дизайна.
    • Учитывайте, что QR-код должен быть всегда четко видимым и не перекрываться фоном.
background = Image.open("background.jpg")
background.paste(qr_img, (100, 100))  # координаты расположения QR-кода
  1. Сохранение и отображение:
    • После стилизации QR-кода сохраните изображение в файл или отобразите его.
img.save("styled_qr_code.png")
img.show()

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