在枕头中裁剪。 (不和谐.py)

时间:2021-04-06 16:33:46

标签: discord.py python-imaging-library

我需要帮助。如何根据当前经验制作枕头夹我的进度条。因为目前我正在使用调整大小,但不幸的是,当有人的 exp 很少时,它看起来不太好,所以我想让机器人从右侧相对于缺少的 exp 修剪我的进度条 这是我的实际代码:

    rectangle = Image.open("progress-bar.png")
    rectangle = rectangle.resize((round(rectangle.size[0] * exp / lev), rectangle.size[1]))

    levelcard.paste(rectangle, (440, 376))


    levelcard.save("profile2.png")

    await ctx.reply(file=discord.File("profile2.png"))

(和 rectangle.crop 不起作用) (我希望它可以裁剪我的进度条的中间(我可以给你看一张图片),以便进度条的开头和结尾是圆形的,因为当我使用调整大小时,它只会使我的进度条变成方形双方)

1 个答案:

答案 0 :(得分:0)

首先:请提供更多信息并更深入地解释您的问题,您提到的示例图片对于了解您的需求非常有用。

其次:您确定要将进度条调整为 exp 除以级别吗?这似乎行不通。

如果级别没有呈指数级增长,并且每升一级,exp 都会变为 0,那么您可能只想将 exp 乘以这个神奇的数字 x_pixel_size_of_progressbar / max_xp_to_level_up。 IE:如果进度条的 x 大小为 200,最大 xp 为 100,则幻数为 2 (200 / 100 = 2),因此如果您有完整的 xp,则 xp 栏将是完整的 (100 * 2 = 200),所以不是 rectangle = rectangle.resize((round(rectangle.size[0] * exp / lev), rectangle.size[1])),而是 rectangle = rectangle.resize((round(exp * (rectangle.size[0] / maxexp)), rectangle.size[1]))

如果 exp 在 levelup 时不像“全局”xp 系统那样变为 0,那么您可以执行类似 this_levels_xp = exp - (levup_xp * lev) 的操作,然后应用前面提到的内容。