我想在网上找到一张图片的尺寸。我试着用
from PIL import Image
import urllib2 as urllib
fd = urllib.urlopen("http://a/b/c")
im = Image.open(fd)
im.size
如this answer中所建议的,但我得到了错误消息
addinfourl instance has no attribute 'seek'
我检查了一下,根据dir
,urllib2.urlopen(url)
返回的对象似乎没有seek方法。
那么,我必须做什么才能将图像从Internet加载到PIL中?
发布于 2012-08-19 01:46:37
您可以考虑对forward compatibility使用io.BytesIO
。
Python3中不存在StringIO和cStringIO模块。
from PIL import Image
import urllib2 as urllib
import io
fd = urllib.urlopen("http://a/b/c")
image_file = io.BytesIO(fd.read())
im = Image.open(image_file)
发布于 2014-08-17 23:53:24
使用Python requests
from PIL import Image
from StringIO import StringIO
import requests
r = requests.get("http://a/b/c")
im = Image.open(StringIO(r.content))
im.size
发布于 2012-08-19 01:47:36
使用相同的示例,只需使用StringIO将缓冲区包装到一个适当的类似文件的对象中:
from PIL import Image
import urllib2 as urllib
from StringIO import StringIO
fd = urllib.urlopen("http://a/b/c")
im = Image.open(StringIO(fd.read()))
im.size
https://stackoverflow.com/questions/12020657
复制相似问题