discord бот на python для вывода информации на баннер сервера gif изображения

Вы уже наверное сами прекрасно знаете, что можно отобразить текст с какой-либо информацией поверх баннера сервера дискорд, скорее всего видели такое на хорошо оформленных серверах. Вопрос состоит вот в чем, возможно ли отображать текст поверх гиф фона баннера, а не статичного изображения? Подобного сам я не видел, но и присутствовал я на небольшом количестве серверов. Если нужно, то вот мой код кога:

class ServerBanner(commands.Cog):
def __init__(self, bot: commands.Bot):
    self.bot = bot
    logger.success('Ког ServerBanner был успешно подключен к боту')
    self.update_banner.start()

def cog_unload(self):
    self.update_banner.cancel()

@tasks.loop(minutes=1)
async def update_banner(self):
    guild = self.bot.get_guild(guild_id)
    if not guild:
        logger.error("Guild not found.")
        return

    member_count = guild.member_count
    voice_members_count = sum(len(channel.members) for channel in guild.voice_channels)
    banner_text = f"Участники: {member_count}\nВ голосовых: {voice_members_count}"

    try:
        banner_image = self.create_banner_image(banner_text)
    except Exception as e:
        logger.error(f"Ошибка при создании изображения: {e}")
        return

    try:
        await guild.edit(banner=banner_image)
        logger.info(f"Баннер сервера обновлен: {banner_text}")
    except Exception as e:
        logger.error(f"Ошибка при обновлении баннера: {e}")

def create_banner_image(self, text):
    image_path = os.path.join("background.jpg")
    if not os.path.exists(image_path):
        raise FileNotFoundError(f"Файл {image_path} не найден.")

    img = Image.open(image_path)
    d = ImageDraw.Draw(img)
    font = ImageFont.truetype("arial.ttf", 70)
    lines = text.split('\n')
    y_text = 450
    for line in lines:
        bbox = d.textbbox((0, 0), line, font=font)
        width, height = bbox[2] - bbox[0], bbox[3] - bbox[1]
        d.text((50, y_text), line, font=font, fill=(255, 255, 255))
        y_text += height + 10 

    img_byte_arr = io.BytesIO()
    img.save(img_byte_arr, format='PNG')
    img_byte_arr = img_byte_arr.getvalue()

    return img_byte_arr

@update_banner.before_loop
async def before_update_banner(self):
    await self.bot.wait_until_ready()
    await asyncio.sleep(60)

def setup(bot):
    bot.add_cog(ServerBanner(bot))

P.s Я пытался сам, но у меня ничего не выходит. Как выяснилось, Pillow не поддерживает вставку гифки на изображение фона баннера, поэтому я попробовал сделать это через библиотеку moviepy, но у меня совсем ничего не получилось, из чего я могу сделать вывод, что либо я не смог написать работающий код на этой библиотеке, либо просто нельзя установить фон баннера .gif и отображать поверх него текст и так устроен Discord.


Ответы (0 шт):