- Saved searches
- Use saved searches to filter your results more quickly
- CodeStudio-Content/QR-Code-Generator-Python
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Как сделать QR код с картинкой на Python
- Создаем QR-коды с помощью Python
- Создаем QR-коды
- Продвинутые QR-коды
- Заключение
- Генерация и считывание QR-кода в Python
- Введение
- Генерация QR-кода в Python
- Считывание QR-кода в Python
- Заключение
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Welcome to our QR Code Generator repository! This is a Python implementation of a QR Code generator, with a user interface created using the Tkinter library. In this project, we aimed to create a simple, yet powerful tool for generating QR Codes for various purposes such as marketing, event management, or personal use.
CodeStudio-Content/QR-Code-Generator-Python
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
This is a simple QR code generator made using Python and Tkinter. It allows you to generate QR codes for URL that you input, and save them as image files.
Check out our project blog post for more information on the development process and our thoughts on the QR Code Generator project:
- Clone this repository to your local machine.
- Open a terminal window and navigate to the cloned repository.
- Run the following command to start the game: python3 qr.py
- Enter the text or URL that you want to generate a QR code for and click the «Generate QR Code» button.
- Your QR code will be displayed on the screen. Click the «Save QR Code» button to save the QR code image as a PNG file.
- Choose a location to save the QR code image by using the file dialog box that appears. Enter a file name and click the «Save» button.
- creating the user interface and handling user input.
- The init method initializes the user interface by creating and configuring the label, entry, and button widgets.
- The generate_qr_code method generates a QR code based on the user input, and the save_qr_code method saves the QR code as a PNG image file.
- Finally, the root variable creates the main window and runs the QRCodeGenerator class.
Made with ❤️ , Python, and Tkinter. Enjoy!
About
Welcome to our QR Code Generator repository! This is a Python implementation of a QR Code generator, with a user interface created using the Tkinter library. In this project, we aimed to create a simple, yet powerful tool for generating QR Codes for various purposes such as marketing, event management, or personal use.
Как сделать QR код с картинкой на Python
Как поместить полноценное изображение на фон QR кода с помощью Python (быстро, без регистрации и смс).
Суть проблемы
Всем привет, Хабрчане! В наше нелегкое время QR коды требуют на каждом углу, от Кинотеатров до общественных Туалетов. Пандемия увеличила популярность этих удобных квадратов и дала понимание, что без них не обойтись.
К сожалению их удобство не смогло совладать с раздражающим процессом демонстрации сертификата администраторам и охранникам во всех общественных местах.
Лица проверяющих, к которым зачастую выстраиваются очереди, выглядят мягко сказать недовольными. А если этот набор пикселей затерялся в галерее… И так пару раз за день. Вся эта процедура раздражает и бесит!
Поиск решения
Мне надоело показывать унылые QR коды унылым администраторам и охранникам заведений, и решил чуть приободрить это тухлое занятие.
Идея заключалась в генерации забавных QR-кодов. Тут же побежал на просторы интернетов в поисках готовых библиотек и модулей.
Из достойного попался на глаза модуль MyQR (Amazing-QR):
- Плюсы: На Python, возможность создания gif изображений
- Минусы: Шакальное качество, эстетически несочетающиеся с изображением полосы
- Источник — https://github.com/x-hw/amazing-qr
К великому сожалению все они оказались чересчур примитивными, генерирующими пережатый 8/10 шакалов дЖпег со страшными полосами в QR коде, что совсем мне не подходило.
Время костылей
Было решено написать свой костыль модуль-надстройку для qrcode (Python).
Определился с минимальными требованиями для него:
- Добротное качество выходного изображения
- Отсутствие непонятных позиционных полос
- Возможность изменения стиля и цвета пикселей* кода
Весь код есть на Github, ссылка будет внизу, в источниках
И так, начнем…
Первым делом устанавливаем все зависимости командой: pip install -r requirements.txt
В зависимости от вашей ОС устанавливаем модуль pyzbar. Инструкция: https://pypi.org/project/pyzbar/
Если у вас Mac OS и вылезают ошибки zbar, то перед каждым запуском ОС выполняйте команду: export DYLD_LIBRARY_PATH=/opt/homebrew/lib
Все остальное для быстрого использования уже настроено и готово к работе, просто откройте файл example.py
from path import Path from main import gen_qr_code text = "текст для шифровки в QR код" path_to_download = Path().joinpath("example", "example.jpg") path_to_save = Path().joinpath("example", "example.png") gen_qr_code(text, path_to_download, path_to_save)
Модуль Path нужен для работы с путями. Функция gen_qr_code является генератором QR-кода, для нее подготавливаем:
- text — текст, url, то что будет шифроваться в QR код
- path_to_download — путь до фоновой картинки (вместе с именем и форматом самой картинки)
- path_to_save — путь куда сохранять готовое изображение (в формате .png)
1) Передаем 3 аргумента в gen_qr_code()
2) Запуск из корневой директории команды — python example.py
Логика работы банальна — Фоновое изображение автоматически подгоняется под будущие размеры QR-кода, затем модуль qrcode генерирует числовую матрицу из текста, который ему передали, после модуль Pillow рисует png картинку из матрицы, и наконец png накладывается на фоновую картинку.
Хочу поблагодарить за внимание дорогие мои, добра вам и счастья в копилку. Сделаем этот мир чуточку веселее!
Если кого нибудь заинтересует более подробный функционал (изменение цвета, яркости, формы пикселей qr кода — прошу написать мне, с удовольствием поделюсь)
Создаем QR-коды с помощью Python
Нас всюду окружают QR-коды. Это удобный способ передать пользователю ссылку на сайт в рекламе, пароль от Wi-Fi или страницу загрузки меню в кафе. Их используют, чтобы получить номер в очереди, подтвердить вакцинацию, быстро проверить документы. QR-коды на достопримечательностях позволяют загрузить их изображения, трехмерные модели, информацию и даже музыку (как, например, шопеновские лавочки в Варшаве), расширяющие наш опыт туризма. Они могут заменить увесистую стопку скидочных карточек и упростить авторизацию в мессенджере.
В профессиональной деятельности QR-коды массово используются для инвентаризации, маркировки продуктов и образцов. Такие задачи остро нуждаются в автоматизации. К счастью, в Python есть модуль qrcode, позволяющий превратить текст в симпатичные квадратики.
Создаем QR-коды
Для начала, нам нужно установить модуль qrcode. Он использует библиотеку Pillow, так что мы загрузим все разом:
Теперь нам даже необязательно писать программу, чтобы создать QR-код. Мы можем сделать это прямо в командной строке.
qr "https://okumy.com/" > okumy.png
В результате мы получим такое изображение:
В Python мы можем воспользоваться функцией qrcode.make() :
import qrcode img = qrcode.make('https://okumy.com/') type(img) # qrcode.image.pil.PilImage img.save("okumy.png")
А теперь напишем программу для инвентаризации. Она автоматически сгенерирует QR-коды с инвентарным номером для каждого предмета. Останется только распечатать их на наклейках в ближайшем копицентре. Докупив оборудование, мы можем начать с номера, на котором остановились.
import qrcode def main(): start = int(input('Введите первый номер:')) stop = int(input('Введите последний номер:')) for i in range(start, stop + 1): value = '#' + str(i).rjust(8, '0') qrcode.make(value).save(value + '.png') if __name__ == '__main__': main()
Теперь можно держать все инвентарные номера в базе данных, и управлять списанием прямо с телефона.
Продвинутые QR-коды
Если вы хотите большего, можно воспользоваться классом qrcode.QRCode . Он позволяет настраивать разные параметры.
import qrcode qr = qrcode.QRCode( version=10, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=15, border=6, ) qr.add_data('https://okumy.com/') qr.make(fit=True) img = qr.make_image(fill_color=(75, 0, 75), back_color=(190, 190, 255)).save('ok.png')
version — число от 1 до 40, отвечающее за размер поля QR-кода. Единица задает матрицу 21 на 21 квадрат. None позволяет автоматически подстраивать размер.
error_correction — определяет избыточность QR-кода, допустимый процент ошибок. Варьируется от 7% ( ERROR_CORRECT_L ) до 30% ( ERROR_CORRECT_H ), по умолчанию — 15%.
box_size — размер квадратов в пикселях.
border — определяет толщину границы. Не может быть меньше 4 (значение по умолчанию).
fill_color , black_color — это цвет фона и квадратов. Желательно делать их контрастными, иначе камера телефона не сможет прочесть QR-код. Помимо текста, они могут принимать RGB-кортежи.
Заключение
Модуль qrcode позволяет генерировать QR-коды в Python или прямо из командной строки. Базовая функция make() позволяет создать QR-код в одну строку, а использование класса QRCode позволит контролировать разнообразные параметры. Этому модулю можно найти множество самых разнообразных применений, от эффектной рекламы до граффити.
Практический Python для начинающих
Станьте junior Python программистом за 7 месяцев
Генерация и считывание QR-кода в Python
Статьи
Введение
В данной статье научимся генерировать и считывать QR-код в языке программирования Python.
Генерация QR-кода в Python
Чтобы сгенерировать QR-код нам нужен модуль под названием qrcode. Для его установки нужно перейти в терминал/командную строку, прописать pip install qrcode, нажать Enter и ждать установки.
После инсталляции модуля мы его импортируем:
Теперь сохраним в переменную data ссылку, на которую будет вести QR-код. Это может быть всё что угодно, но в качестве примера я укажу ссылку на этот сайт:
import qrcode data = "https://it-start.online"
Далее нам нужно сгенерировать сам QR-код. Для этого используем функцию make():
import qrcode data = "https://it-start.online" img = qrcode.make(data)
Методом save() сохраним итоговый результат:
import qrcode data = "https://it-start.online" img = qrcode.make(data) img.save('qr-code name.png')
Считывание QR-кода в Python
Для считывания QR-кода нам понадобится библиотека под названием cv2. Для её установки нужно перейти в терминал/командную строку, прописать pip install opencv-python нажать Enter и ждать установки.
После инсталляции импортируем библиотеку cv2:
При помощи функции imread() откроем изображение с QR-кодом:
import cv2 img = cv2.imread('qr-code name.png')
Создадим экземпляр класса QRCodeDetector():
import cv2 img = cv2.imread('qr-code name.png') detector = cv2.QRCodeDetector()
Осталось считать qr-код и вывести в консоль:
import cv2 img = cv2.imread("qr-code name.png") detector = cv2.QRCodeDetector() data, bbox, straight_qrcode = detector.detectAndDecode(img) print(f"Данные из qr-кода: ") # Вывод: Данные из qr-кода: https://it-start.online
Заключение
В ходе статьи мы с Вами научились генерировать и считывать QR-коды в языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂