我怎么不能在 PIL 中保存图像?
How can I NOT save an image in PIL?
我只看到了在 PIL 中保存所有图像的唯一方法,但 我不想全部保存它们。我正在制作一个 discord 机器人,以在 space 中发送带有用户个人资料图片的 meme。使用 Visual Studio 代码
有什么方法可以让我在笔记本电脑上保存一堆无用的图像吗?
#spongebob burning meme
@client.command(name= "spongebob_burn")
async def spongebob_burn(content, user: discord.member = None):
if user is None:
user = content.author
spongebob_burn = Image.open("memes/Spongebobburn.jpeg")
asset= user.avatar_url_as(size=128)
data= BytesIO(await asset.read())
pfp = Image.open(data)
pfp = pfp.resize((74,74))
spongebob_burn.paste(pfp, (22,45))
spongebob_burn.save('sbb_new.jpeg')
await content.send(file= discord.File("sbb_new.jpeg"))
我尝试删除保存行,因为那是我的第一直觉,但后来我想多了它将如何发送以及发送什么
所以我立即尝试了 show 命令以及我的大脑可以处理的其他方法
Mark Setchell 已经在评论中回答了这个问题,但您似乎无法真正理解它,所以我会写一个答案。
您可以将图像保存到输出缓冲区,然后直接发送缓冲区。
from io import BytesIO
@client.command(name= "spongebob_burn")
async def spongebob_burn(content, user: discord.member = None):
if user is None:
user = content.author
spongebob_burn = Image.open("memes/Spongebobburn.jpeg")
asset = user.avatar_url_as(size=128)
data = BytesIO(await asset.read())
pfp = Image.open(data)
output_buffer = BytesIO()
pfp = pfp.resize((74,74))
spongebob_burn.paste(pfp, (22,45))
spongebob_burn.save(output_buffer, "jpeg")
await content.send(file=discord.File(fp=output_buffer, filename="sbb_new.jpeg"))
我只看到了在 PIL 中保存所有图像的唯一方法,但 我不想全部保存它们。我正在制作一个 discord 机器人,以在 space 中发送带有用户个人资料图片的 meme。使用 Visual Studio 代码 有什么方法可以让我在笔记本电脑上保存一堆无用的图像吗?
#spongebob burning meme
@client.command(name= "spongebob_burn")
async def spongebob_burn(content, user: discord.member = None):
if user is None:
user = content.author
spongebob_burn = Image.open("memes/Spongebobburn.jpeg")
asset= user.avatar_url_as(size=128)
data= BytesIO(await asset.read())
pfp = Image.open(data)
pfp = pfp.resize((74,74))
spongebob_burn.paste(pfp, (22,45))
spongebob_burn.save('sbb_new.jpeg')
await content.send(file= discord.File("sbb_new.jpeg"))
我尝试删除保存行,因为那是我的第一直觉,但后来我想多了它将如何发送以及发送什么
所以我立即尝试了 show 命令以及我的大脑可以处理的其他方法
Mark Setchell 已经在评论中回答了这个问题,但您似乎无法真正理解它,所以我会写一个答案。
您可以将图像保存到输出缓冲区,然后直接发送缓冲区。
from io import BytesIO
@client.command(name= "spongebob_burn")
async def spongebob_burn(content, user: discord.member = None):
if user is None:
user = content.author
spongebob_burn = Image.open("memes/Spongebobburn.jpeg")
asset = user.avatar_url_as(size=128)
data = BytesIO(await asset.read())
pfp = Image.open(data)
output_buffer = BytesIO()
pfp = pfp.resize((74,74))
spongebob_burn.paste(pfp, (22,45))
spongebob_burn.save(output_buffer, "jpeg")
await content.send(file=discord.File(fp=output_buffer, filename="sbb_new.jpeg"))