3 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
您可以使用BytesIO该类来获取行为类似于文件的字符串的包装。该BytesIO对象提供与文件相同的接口,但仅将内容保存在内存中:
import io
with io.BytesIO() as output:
image.save(output, format="GIF")
contents = output.getvalue()
您必须使用format参数明确指定输出格式,否则PIL在尝试自动检测时会引发错误。
如果从文件加载图像,则图像的format参数包含原始文件格式,因此在这种情况下,可以使用format=image.format。
在引入io模块之前的旧Python 2版本中,您会改用该StringIO模块。
www说
TA贡献1775条经验 获得超8个赞
某物的解决方案对我不起作用,
因为在...
Imaging / PIL / Image.pyc第1423行->提高KeyError(ext)#未知扩展名
它试图从文件名中的扩展名中检测格式,这在StringIO情况下不存在
您可以通过在参数中自行设置格式来绕过格式检测
import StringIO
output = StringIO.StringIO()
format = 'PNG' # or 'JPEG' or whatever you want
image.save(output, format)
contents = output.getvalue()
output.close()
添加回答
举报
0/150
提交
取消