我想将屏幕截图作为打开的文件处理,更具体地说,它必须具有属性 .read()。
我正在使用 PIL 的 ImageGrab.grab() 截屏,它给了我一个图像对象,它显然没有 .read() 属性.我知道我可以保存图像并使用 open("image.png", "rb") 重新打开它,但我想知道是否有一种无需保存的简单方法过程中的图像。
我想借助 smtplib 将图像添加到电子邮件中。 通常,我会这样做:
filename='filename'
attachment =open(filename,'rb')
part = MIMEBase('application','octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition',"attachment; filename= "+filename)
msg.attach(part)
但在这种情况下,我想使用之前截取的屏幕截图。
请您参考如下方法:
您可以使用 base64 和 BytesIO 将其存储为缓冲图像。
import base64
from io import BytesIO
buffered_img = BytesIO()
image.save(buffered_img, format="JPEG")
img_str = base64.b64encode(buffered_img.getvalue())
然后使用 img_str。
