Генератор qr код в боте телеграмм
У меня есть бот по генерация qr кодов ,но дело в том что он делает обычный qr код

Но мне нужно делать вот такие
Кто может помочь вот код который уже имеется
def make_image_qrcode(data: Union[int, str]) -> str:
"""
Формирует QRCode из входных данных и сохраняет в временных файлах.
:return: Путь до qrcode
"""
code = str(data)
format = '.png'
image_title = f'{data}{format}'
dir = f'data{os.sep}tmp{os.sep}{image_title}'
qr = qrcode.QRCode(
version=1,
error_correction=constants.ERROR_CORRECT_M,
box_size=20,
border=2
)
qr.add_data(data)
image = qr.make_image()
image.save(f'{dir}')
return dir
Ответы (2 шт):
Автор решения: Andy Pavlov
→ Ссылка
Баркод создаем с помощью библиотеки python-barcode. Чтобы она сохраняла не только svg, нужна обязательно установка Pillow.
Нужно учитывать при составлении пути, что расширение добавляется автоматом и его не нужно лишний раз указывать. Путь сохранения выдается на методе save().
import os
from typing import Union
import barcode
from barcode.writer import ImageWriter
def make_image_barcode(data: Union[int, str]) -> str:
try:
code = str(data)
ean = barcode.get('ean13', code, writer=ImageWriter())
filepath = ean.save(f'data{os.sep}tmp{os.sep}{code}')
return f'{filepath}'
except (barcode.errors.IllegalCharacterError, barcode.errors.NumberOfDigitsError) as e:
return print(e) # Выводит в консоль ошибку, если ввод не по EAN13
# return None # Можно использовать возврат None, чтобы бот понимал, что картинки нет.
inp = input('введите 12 цифр')
filepath = make_image_barcode(inp)
Автор решения: Violet
→ Ссылка
@bot.message_handler(commands=['start'])
def start(message):
msg = bot.send_message(message.chat.id, 'введите 12 цифр')
bot.register_next_step_handler(msg, start_2)
def start_2(message):
# проверка на количество и цифры
bot.send_photo(message.chat.id, open(
barcode.get('ean13', str(message.text), writer=ImageWriter()).save(f'files/{str(message.text)}'), 'rb'))
