为了账号安全,请及时绑定邮箱和手机立即绑定

Python PIL:如何将PNG图像写入字符串

Python PIL:如何将PNG图像写入字符串

波斯汪 2019-12-16 11:05:35
Python PIL:如何将PNG图像写入字符串我已经使用PIL生成了图像。如何将其保存到内存中的字符串中?该Image.save()方法需要一个文件。我想将几个这样的图像存储在字典中。
查看完整描述

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模块。


查看完整回答
反对 回复 2019-12-16
?
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()


查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 894 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信