#python #api #qr-code #py-telegram-bot-api
Вопрос:
Я создаю телеграмм-ботов, которые могут генерировать и расшифровывать QR-коды. Я реализовал создание QR-кода с помощью BytesIO:
#bot creating a qrcode @bot.message_handler(commands=['create']) def creating_qr(message): bot.send_message(message.chat.id, 'Enter text and ill generate QRcode') @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)
Я попытался расшифровать qr-код, используя тот же метод, но в документации ApiTelegramMot говорится photo
, что это список, поэтому я не могу сохранить его в байтовом хранилище. Как я могу сохранить photo
, а затем расшифровать его?
Метод, который я испробовал:
def decrypting(message): detector = cv2.QRCodeDetector() qr_image = message.photo bio = BytesIO() qr_image.save(bio, 'JPEG') bio.seek(0) data = detector.detectAndDecode(bio) bot.send_message(message.chat.id, f'QR code data: nn{data}')
Комментарии:
1. Привет, Валерий, добро пожаловать в stackoverflow! Вы не должны помещать в заголовок такие вещи, как язык программирования, вместо этого используйте для этого теги (как вы это сделали).
Ответ №1:
Я сам не использовал API, но Pyhton и Telegram 🙂 В сообщении может быть несколько фотографий. Так что, я думаю, вы получите список фотографий. Чтобы выбрать первую фотографию, измените свой код следующим образом:
qr_image = message.photo[0]