首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PIL中打开互联网上的图像?

如何在PIL中打开互联网上的图像?
EN

Stack Overflow用户
提问于 2012-08-19 01:21:46
回答 6查看 37.3K关注 0票数 27

我想在网上找到一张图片的尺寸。我试着用

代码语言:javascript
复制
from PIL import Image
import urllib2 as urllib
fd = urllib.urlopen("http://a/b/c")
im = Image.open(fd)
im.size

this answer中所建议的,但我得到了错误消息

代码语言:javascript
复制
addinfourl instance has no attribute 'seek'

我检查了一下,根据dirurllib2.urlopen(url)返回的对象似乎没有seek方法。

那么,我必须做什么才能将图像从Internet加载到PIL中?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-08-19 01:46:37

您可以考虑对forward compatibility使用io.BytesIO

Python3中不存在StringIO和cStringIO模块。

代码语言:javascript
复制
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)
票数 43
EN

Stack Overflow用户

发布于 2014-08-17 23:53:24

使用Python requests

代码语言:javascript
复制
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
票数 11
EN

Stack Overflow用户

发布于 2012-08-19 01:47:36

使用相同的示例,只需使用StringIO将缓冲区包装到一个适当的类似文件的对象中:

代码语言:javascript
复制
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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12020657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档