Вот поиграйтесь с этим кодом.
найдите картинки соответствующие и просмотрите как все это работает в примере ниже
import telebot
from telebot import types
token = ''
bot = telebot.TeleBot(token)
@bot.message_handler(commands=['start'])
def send_welcome(message):
photo = open('racoon.jpg', 'rb')
markup = create_markup()
bot.send_photo(message.chat.id, photo, caption='Енот', reply_markup=markup)
@bot.callback_query_handler(func=lambda c: True)
def change_photo(call):
markup = create_markup()
chat_id=call.message.chat.id
message_id=call.message.message_id
if call.data == 'racoon':
photo = open('racoon.jpg', 'rb')
media = types.InputMediaPhoto(photo, caption='Енот')
bot.edit_message_media(media=media, chat_id=chat_id, message_id=message_id, reply_markup=markup)
elif call.data == 'fox':
photo = open('fox.jpg', 'rb')
media = types.InputMediaPhoto(photo, caption='Лиса')
bot.edit_message_media(media=media, chat_id=chat_id, message_id=message_id, reply_markup=markup)
elif call.data == 'rabbit':
photo = open('rabbit.jpg', 'rb')
media = types.InputMediaPhoto(photo, caption='Заяц')
bot.edit_message_media(media=media, chat_id=chat_id, message_id=message_id, reply_markup=markup)
def create_markup():
markup = types.InlineKeyboardMarkup()
button1 = types.InlineKeyboardButton(text='Енот', callback_data='racoon')
button2 = types.InlineKeyboardButton(text='Лиса', callback_data='fox')
button3 = types.InlineKeyboardButton(text='Заяц', callback_data='rabbit')
markup.row(button1, button2, button3)
return markup
bot.polling()
Результат этого кода (Все это - одно сообщение, в котором перерисовывалась картинка):
Единственный момент - это если будете менять зайца на зайца например, то код упадет в ошибку.
Но это уже другая проблема))