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

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

我已经使用PIL生成了图像。如何将其保存到内存中的字符串中?该Image.save()方法需要一个文件。


我想将几个这样的图像存储在字典中。


波斯汪
浏览 895回答 3
3回答

幕布斯7119047

您可以使用BytesIO该类来获取行为类似于文件的字符串的包装。该BytesIO对象提供与文件相同的接口,但仅将内容保存在内存中:import iowith io.BytesIO() as output:    image.save(output, format="GIF")    contents = output.getvalue()您必须使用format参数明确指定输出格式,否则PIL在尝试自动检测时会引发错误。如果从文件加载图像,则图像的format参数包含原始文件格式,因此在这种情况下,可以使用format=image.format。在引入io模块之前的旧Python 2版本中,您会改用该StringIO模块。

www说

某物的解决方案对我不起作用,因为在...Imaging / PIL / Image.pyc第1423行->提高KeyError(ext)#未知扩展名它试图从文件名中的扩展名中检测格式,这在StringIO情况下不存在您可以通过在参数中自行设置格式来绕过格式检测import StringIOoutput = StringIO.StringIO()format = 'PNG' # or 'JPEG' or whatever you wantimage.save(output, format)contents = output.getvalue()output.close()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python