Ram*_*hum 7 python python-imaging-library
我想从原始数据创建PIL图像.我相信我应该使用PIL.Image.frombytes.但它有一个size论点.我不知道图像的大小,是不是应该作为图像的一部分?我事先并不知道图像的大小.我该如何调用没有大小的函数?
Jan*_*rny 13
既然您澄清了,您不想读取原始像素数据,而是读取内存中的图像文件,解决方案很明确:不要使用frombytes- 它适用于原始像素数据.使用刚打开StringIO:
image = Image.open(StringIO.StringIO(image_data))
Run Code Online (Sandbox Code Playgroud)
感谢@jan-spurny 提供线索。对于任何需要从字节打开图像的人
from PIL import Image
import io
image_bytes = ...
im = Image.open(io.BytesIO(image_bytes))
Run Code Online (Sandbox Code Playgroud)
所述size参数必须的图像的尺寸,这不是在原始像素缓冲器编码(例如,缓冲区长度的匹配Ñ可以代表任何网格ķ ×米像素ķ,米> 0,ķ ×米= Ñ)。你必须提前知道这个尺寸。
一些示例代码来演示tobytes和frombytes:
>>> img = PIL.Image.open("some_image.png")
>>> img.size
(482, 295)
>>> raw = img.tobytes()
>>> img2 = PIL.Image.frombytes(img.mode, img.size, raw)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10479 次 |
| 最近记录: |