当我们处理本地文件时,我尝试做的事情相当简单,但是当我尝试使用远程URL来做这件事时,问题就来了。
基本上,我试图从一个从URL中拉出的文件中创建一个PIL图像对象。当然,我总是可以只获取URL并将其存储在一个临时文件中,然后将其打开到一个图像对象中,但这感觉非常低效。
这就是我所拥有的:
Image.open(urlopen(url))
它突然抱怨seek()
不可用,所以我尝试了一下:
Image.open(urlopen(url).read())
但这也不管用。有没有更好的方法来做这件事,或者写临时文件是做这类事情的公认方法?
发布于 2014-05-06 16:21:52
在Python3中,StringIO和cStringIO模块消失了。
在Python3中,您应该使用:
from PIL import Image
import requests
from io import BytesIO
response = requests.get(url)
img = Image.open(BytesIO(response.content))
发布于 2011-09-13 02:07:33
使用StringIO
import urllib, cStringIO
file = cStringIO.StringIO(urllib.urlopen(URL).read())
img = Image.open(file)
发布于 2012-10-23 14:19:25
使用requests
from PIL import Image
import requests
from StringIO import StringIO
response = requests.get(url)
img = Image.open(StringIO(response.content))
https://stackoverflow.com/questions/7391945
复制相似问题