- Кодирование данных
- Создаем QR-коды с помощью Python
- Создаем QR-коды
- Продвинутые QR-коды
- Заключение
- 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-код (quick responce) — штрих-код в виде серии пикселей в квадратной сетке. Для генерации QR-кода в Python можно использовать различные библиотеки. Большинство из них двольно похожи по функционалу. Одной из распространенных библиотек для генерации QR-кодов в Python является Segno. Установим данную библиотеку с помощью пакетного менеджера pip:
Для создания qr-кода применяются функции segno.make() и segno.make_qr() . Эти функции в качестве обязательного параметра принимают кодируемое содержимое и возвращают созданный qr-код:
import segno qrcode = segno.make_qr("Hello METANIT.COM") qrcode2 = segno.make("Hello METANIT.COM", micro=False)
По умолчанию segno.make() создает микро-код. Чтобы создать обычный qr-код, указывается параметр micro=False
Далее созданный qr-код можно сохранить с помощью метода save() в один из следующих форматов: .svg, .png, .eps, и .pdf
import segno # создаем код qrcode = segno.make_qr("Hello METANIT.COM") # сохраняем его в файл "metanit_qr.png" qrcode.save("metanit_qr.png") # аналогично можно сохранить в другие форматы qrcode.save("metanit_qr.pdf") qrcode.save("metanit_qr.eps") qrcode.save("metanit_qr.svg")
Чтобы сразу же отобразить созданный код в программе просмотра по умолчанию, можно применить метод show() :
import segno qrcode = segno.make_qr("Hello METANIT.COM") qrcode.save("metanit_qr.png") qrcode.show()
При сохранении в файл в метод save() можно передать ряд параметров. Некоторые из них:
- scale : коэффициент увеличения изображения
- border : размер границы
- dark : цвет темной части QR кода в виде кортежа (R, G, B) или строки с именем цвета (например, «red») или с шестнадцатеричным значением цвета, например, (#RGB и #RRGGBB)
- light : цвет светлой части QR кода
import segno qrcode = segno.make_qr("Hello METANIT.COM") # цвет - #2980B9, граница - 4, масштабирование - в 5 раз qrcode.save("metanit_qr.png", dark="#2980B9", border=4, scale=5)
В итоге будет создан следующее изображение:
Из интересных возможностей, представляемых библиотекой, можно отметить наличие встроенных функций-хелперов для кодирования определенной информации. Некоторые из них:
segno.helpers.make_email(to, cc=None, bcc=None, subject=None, body=None) # Параметры: # to - кому письмо # cc - список получателей копии письма # bcc - список получателей слепой копии письма # subject - тема письма # body - текст письма
segno.helpers.make_geo(lat, lng) # Параметры: # lat - широта # lng - долгота
segno.helpers.make_wifi(ssid, password=None, security=None, hidden=False) # Параметры: # ssid - SSID сети # password - пароль # security - тип аутентификации ("WEP" или "WPA"). # hidden - является ли сеть скрытой
segno.helpers.make_mecard(name, reading=None, email=None, phone=None, videophone=None, memo=None, nickname=None, birthday=None, url=None, pobox=None, roomno=None, houseno=None, city=None, prefecture=None, zipcode=None, country=None)
segno.helpers.make_vcard(name, displayname, email=None, phone=None, fax=None, videophone=None, memo=None, nickname=None, birthday=None, url=None, pobox=None, street=None, city=None, region=None, zipcode=None, country=None, org=None, lat=None, lng=None, source=None, rev=None, title=None, photo_uri=None, cellphone=None, homephone=None, workphone=None)
Например, кодирование email:
from segno import helpers qrcode = helpers.make_email("tom@gmail.com", cc=None, bcc=None, subject="Тема письма", body="Содержимое письма") qrcode.save("email_qr.png", scale=5)
Или кодирование настроек wifi:
from segno import helpers qrcode = helpers.make_wifi(ssid="MyWifi", password="1234567890", security="WPA") qrcode.save("wifi-access.png", scale=10)
Создаем 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 месяцев
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.