我正在使用urllib2从网上下载图片。一旦我下载了它,我想用一个名为PIL的图像模块做一些事情。我不想将文件保存到磁盘然后重新打开,而是使用StringIO
from PIL import Image
image_buff = urllib2.urlopen(url)
image = Image.open(StringIO.StringIO(image_buff))
但是,当我这样做时,我收到以下错误
IOError: cannot identify image file <StringIO.StringIO instance at 0x101afa2d8
我认为这是因为我没有传递字符串而是传递urllib2对象/实例。有谁知道如何正确地将字符串传递给PIL。
答案 0 :(得分:1)
您需要.read()
您的urllib2.urlopen
对象:
import StringIO
from PIL import Image
image_buff = urllib2.urlopen(url).read()
image = Image.open(StringIO.StringIO(image_buff))
答案 1 :(得分:0)
试试这个:
from PIL import image
from StringIO import StringIO
f = urllib2.urlopen("http://www.example.com/some.jpg")
data = f.read()
im = Image.open(StringIO(data))