Python图像:从内存加载jpeg

2024-07-07 06:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是从内存中加载jpeg编码的图像。

我从socket收到一个字符串:

jpgdata = self.rfile.read(sz)

我知道这是jpeg编码的图像。

我需要破译它。 最愚蠢的解决方案是:

o = open("Output/1.jpg","wb")
o.write(jpgdata)
o.close()
dt = Image.open("Output/1.jpg")

问题是如何在记忆中做同样的事情?


Tags: 内存字符串图像self编码readoutputsocket
2条回答

PIL的Image.open对象接受任何类似文件的对象。这意味着您可以将图像数据包装在StringIO对象上,并将其传递给Image

from io import BytesIO
file_jpgdata = BytesIO(jpgdata)
dt = Image.open(file_jpgdata)

或者,尝试将self.rfile作为参数传递给Image.open—它也可以工作。(对于Python 3-对于Python 2,使用from cStringIO import StringIO as BytesIO

使用StringIO,这样Image可以像访问文件一样访问数据。

相关问题 更多 >