如何从Python中的URL读取图像数据?

2024-05-28 18:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

当我们处理本地文件时,我要做的是相当简单的,但是当我尝试使用远程URL时,问题就来了。

基本上,我试图从一个URL中提取的文件创建一个PIL图像对象。当然,我可以直接获取URL并将其存储在一个临时文件中,然后将其打开到一个图像对象中,但这感觉非常低效。

以下是我所拥有的:

Image.open(urlopen(url))

它开始抱怨seek()不可用,所以我试着这样做:

Image.open(urlopen(url).read())

但那也没用。有没有更好的方法来做这件事,或者是写一个临时文件是做这类事情的公认方法?


Tags: 文件对象方法图像imageurlreadpil
3条回答

在Python3中StringIO和cStringIO模块消失了。

在Python3中,您应该使用:

from PIL import Image
import requests
from io import BytesIO

response = requests.get(url)
img = Image.open(BytesIO(response.content))

我使用请求库。它看起来更强壮。

from PIL import Image
import requests
from StringIO import StringIO

response = requests.get(url)
img = Image.open(StringIO(response.content))

你可以尝试使用StringIO

import urllib, cStringIO

file = cStringIO.StringIO(urllib.urlopen(URL).read())
img = Image.open(file)

相关问题 更多 >

    热门问题