@usiting

Вывод QRкода изображением TelegramBotAPI?

Пишу простенький петпроджект и столкнулся с проблемкой, qrcode выводиться не картинкой, а сообщением, исходный код и скриншот результата ниже

import telebot
from telebot import types
import qrcode

bot = telebot.TeleBot('TOKEN')

@bot.message_handler(commands=['старт'])
def starting_bot(message):
    bot.send_message(message.chat.id, 'Привет, я бот, который создаёт QRкоды \n\n/помощь для просмотра умений бота')

@bot.message_handler(commands=['помощь'])
def helping_user(message):
    bot.send_message(message.chat.id, 'Чтобы создать QRкод напиши мне /создать')

@bot.message_handler(commands=['создать'])
def creating_qr(message):
    bot.send_message(message.chat.id, 'Пришли мне текст, который нужно преобразовать в QRcod')
    @bot.message_handler(content_types=['text'])
    def creating_qr(message):
        for_qr = message.text
        img_create_qr = qrcode.make(for_qr)
        bot.send_message(message.chat.id, f'Твой QRкод: \n\n{img_create_qr}')
        
bot.polling(none_stop = True)


qr код выводиться вот так:
619e31a098479184996081.jpeg

я пытался переписывать код, используя библиотеку pillow
@bot.message_handler(commands=['создать'])
def creating_qr(message):
    bot.send_message(message.chat.id, 'Пришли мне текст, который нужно преобразовать в QRcod')
    @bot.message_handler(content_types=['text'])
    def creating_qr(message):
        for_qr = message.text
        img_create_qr = qrcode.make(for_qr)
        img_create_qr.save('qr1.jpg','JPEG')
        bot.send_photo('qr1.jpg')


при использовании bot.send_photo терминал выдаёт ошибку:
619e32baa9d32005165005.jpeg

Помогите пожалуйста решить эту проблему, буду вам очень признателен
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Без сохранения можно отправить
from io import BytesIO

qr_img = qrcode.make('Starting!')
bio = BytesIO()
qr_img.save(bio, 'JPEG')
bio.seek(0)
bot.send_photo(message.chat.id, bio)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@usiting Автор вопроса
Кому интересен полный код проекта, пожалуйста: (P.S ответ на мой вопрос подсказали выше)

import telebot
from telebot import types
import qrcode
from io import BytesIO

bot = telebot.TeleBot('TOKEN')

@bot.message_handler(commands=['старт'])
def starting_bot(message):
    bot.send_message(message.chat.id, 'Привет, я бот, который создаёт QRкоды \n\n/помощь для просмотра умений бота')

@bot.message_handler(commands=['помощь'])
def helping_user(message):
    bot.send_message(message.chat.id, 'Чтобы создать QRкод напиши мне /создать')

@bot.message_handler(commands=['создать'])
def creating_qr(message):
    bot.send_message(message.chat.id, 'Пришли мне текст, который нужно преобразовать в QRcod')
    @bot.message_handler(content_types=['text'])
    def creating_qr(message):
        qr_img = qrcode.make(message.text)
        bio = BytesIO()
        qr_img.save(bio, 'JPEG')
        bio.seek(0)
        bot.send_photo(message.chat.id, bio)


bot.polling(none_stop = True)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы