指定'PIL.Image.frombytes的大小`

2024-05-21 23:37:41 发布

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

我想从原始数据创建一个PIL图像。我想我应该用PIL.Image.frombytes。但它有一个size参数。我不知道图像的大小,这不是应该作为图像的一部分吗?我不知道图像的大小。我应该如何调用没有大小的函数?


Tags: 函数图像image参数size原始数据pilfrombytes
2条回答

既然您澄清了不想读取原始像素数据,而是在内存图像文件中读取,那么解决方案就很清楚了:不要使用frombytes-它是针对原始像素数据的。使用从StringIO打开:

image = Image.open(StringIO.StringIO(image_data))

参数size必须与未在原始像素缓冲区中编码的图像尺寸匹配(例如,长度n的缓冲区可以表示k×m像素的k>,m>;0,k×m=n的任何网格)。你必须事先知道这个尺寸。

演示tobytesfrombytes的一些示例代码:

>>> img = PIL.Image.open("some_image.png")
>>> img.size
(482, 295)
>>> raw = img.tobytes()
>>> img2 = PIL.Image.frombytes(img.mode, img.size, raw)

相关问题 更多 >