You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Peasy-Pil在Discord.py的URL Embed中打开生成的图片?图片转URL求库推荐

解决方案

将PIL生成的图片转为可访问URL

你不需要额外安装特殊库,用Python内置的io模块配合requests就能实现,或者直接利用Discord的附件系统:

方法1:通过图床API上传字节流

  1. 把PIL图片转为内存字节流(无需保存到本地):
    from io import BytesIO
    from PIL import Image
    
    # 假设img是你创建好的PIL图片对象
    img_buffer = BytesIO()
    img.save(img_buffer, format="PNG")
    img_buffer.seek(0)
    
  2. 用requests将字节流上传到支持API的图床,获取返回的图片URL:
    import requests
    
    # 替换为目标图床的上传API地址
    upload_endpoint = "图床API地址"
    files = {"image": ("output.png", img_buffer, "image/png")}
    resp = requests.post(upload_endpoint, files=files)
    image_url = resp.json()["data"]["url"] # 具体字段根据图床返回结构调整
    

方法2:利用Discord附件获取URL

如果不想依赖第三方图床,直接上传图片到Discord,从附件中提取URL:

from discord import File

# 在Discord.py的命令/事件上下文里
file = File(img_buffer, filename="generated_image.png")
msg = await ctx.send(file=file)
image_url = msg.attachments[0].url

用Peasy-Pil在Discord.py的Embed中展示图片

Peasy-Pil的Canvas对象可以通过.image属性获取底层PIL图片,后续处理和普通PIL图片一致:

  1. 创建Peasy-Pil图片并转为字节流:

    from peasy_pil import Canvas, Text
    from io import BytesIO
    
    # 创建画布并添加内容
    canvas = Canvas((500, 200), color="#2c2f33")
    Text((250, 100), "Example Text", font_size=32, center=True).draw(canvas)
    pil_img = canvas.image
    
    # 转为内存字节流
    img_buffer = BytesIO()
    pil_img.save(img_buffer, format="PNG")
    img_buffer.seek(0)
    
  2. 在Embed中展示的两种方式:

    • 方式1:通过Discord附件URL
      from discord import Embed, File
      
      file = File(img_buffer, filename="peasy_image.png")
      embed = Embed(title="Generated Image")
      # 先发送文件获取URL,再更新Embed
      msg = await ctx.send(file=file)
      embed.set_image(url=msg.attachments[0].url)
      await msg.edit(embed=embed, attachments=[]) # 可选:移除原附件
      
    • 方式2:使用图床URL
      如果已经通过图床拿到了image_url,直接设置Embed的图片:
      embed = Embed(title="Generated Image")
      embed.set_image(url=image_url)
      await ctx.send(embed=embed)
      

内容的提问来源于stack exchange,提问作者Bohdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:30:56