Как расшифровать QR-код в TelegramBotAPI

#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]