gpt4 book ai didi

python - 将 PIL 图像转换为 MIMEImage

转载 作者:太空狗 更新时间:2023-10-30 02:22:47 26 4
gpt4 key购买 nike

我想使用 PIL 创建图像并能够通过电子邮件发送它而无需将其保存到磁盘。

这是可行的,但涉及保存到磁盘:

from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

msg = MIMEMultipart()

im = Image.new("RGB", (200, 200))

with open("tempimg.jpg", "w") as f:
im.save(f, "JPEG")

with open("tempimg.jpg", 'rb') as f:
img = MIMEImage(f.read())

msg.attach(img)

现在我希望能够做类似的事情:

import StringIO

tempimg = StringIO.StringIO()
tempimg.write(im.tostring())
img = MIMEImage(tempimage.getvalue(), "JPG")
msg.attach(img)

,这是行不通的。我找到了一些 discussion in Spanish看起来它解决了同样的问题,除了指向 StringIO 的指针之外没有解决方案。

最佳答案

im.tostring 返回原始图像数据,但您需要将整个图像文件数据传递给 MIMEImage,因此请使用 StringIO将图像保存到内存并使用该数据的模块:

from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from PIL import Image
import cStringIO

msg = MIMEMultipart()

im = Image.new("RGB", (200, 200))
memf = cStringIO.StringIO()
im.save(memf, "JPEG")
img = MIMEImage(memf.getvalue())

msg.attach(img)

关于python - 将 PIL 图像转换为 MIMEImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com