【问题标题】:Adding text to a image using PIL使用 PIL 向图像添加文本
【发布时间】:2021-08-23 06:59:38
【问题描述】:

所以,我希望机器人发送一张欢迎卡片,其中包含用户的个人资料图片和文字“欢迎 {user.name}”,但文字部分不起作用。我在控制台中没有错误。

这是我的代码:

from PIL import Image, ImageFilter, ImageFont, ImageDraw
from io import BytesIO

@client.event
async def on_member_join(member):

    wc = Image.open("wc.jpg")

    asset = member.avatar_url_as(size=128)
    data = BytesIO(await asset.read())
    pfp = Image.open(data)

    draw = ImageDraw.Draw(wc)
    font = ImageFont.truetype("Littlecandy.ttf", 24)
    
    pfp = pfp.resize((474,382))
    draw.text((549,284), f"{member.display_name}", (171, 5, 171), font=font)
    wc.paste(pfp, (727,209))
    wc.save("wcm.jpg")

    await client.get_channel(850634788633182218).send(file = discord.File('wcm.jpg'))

【问题讨论】:

  • 请分享您遇到的错误
  • 啊!我已经先说明了我在控制台中没有错误。
  • 实际上 o 忘记在“我在控制台出错”行中的错误之前添加 NO。搞错了,真的很抱歉。
  • 啊,我明白了,发送的图像是没有文字,还是根本不工作?
  • 是的,你是对的,机器人只发送带有用户个人资料图片的欢迎卡。不是文字。

标签: python discord discord.py python-imaging-library


【解决方案1】:

所以,我没有得到答案,但是当我删除了 (171, 5, 171) 的 RGB 代码时,我对其进行了测试并且它工作正常。

这是我修改后的代码:

from PIL import Image, ImageFilter, ImageFont, ImageDraw
from io import BytesIO

@client.comamnd()
async def on_member_join(member):

    wc2 = Image.open("wc2.jpg")

    asset = member.avatar_url_as(size=64)
    data = BytesIO(await asset.read())
    pfp = Image.open(data)

    draw = ImageDraw.Draw(wc2)
    font = ImageFont.truetype("BalsamiqSans-BoldItalic.ttf", 45)
    text = f"{member}" 

    pfp = pfp.resize((211,181))
    wc2.paste(pfp, (30,28))
    draw.text((26,235),text,font=font,fill='orange')
    wc2.save("wcm.jpg")

    await client.get_channel(850634788633182218).send(file = discord.File('wcm.jpg'))

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 2010-10-06
    相关资源
    最近更新 更多