python - 如何不将图像保存在 PIL 中?
问题描述
我已经看到了将所有图像保存在 PIL 中的唯一方法,但我不想全部保存。我正在制作一个不和谐的机器人来发送带有空间中用户个人资料图片的 meme。使用 Visual Studio Code 有什么方法可以在我的笔记本电脑中保存一堆无用的图像?
#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"))
推荐阅读
- java - 如何在 Android 中播放在线音频流?
- dart - 在 Dart 中,'const' 参数有什么区别?
- php - Symfony 3.4 新实体:语法错误或访问冲突
- python - 卷积神经网络模型在 keras 中没有学习任何东西
- c++ - 请对 cocos2d c++ 源代码结构提出建议
- html - 如何在不触及 ul 部分的情况下使引导滑块的内容居中?
- oracle - 在 PeopleSoft 中生成发票
- kubernetes - kafka - 向主题 test-topic 发送消息时出错,键:null,值:17 个字节,有错误
- c# - 统一处理异步协程
- javascript - 如何检查字符串中左括号和右括号的顺序?