我需要在Python中检索一个URL并将其作为Pillow图像。
from PIL import Image
from io import BytesIO
import urllib.request
Image.open(
BytesIO(
urllib.request.urlopen('http://skins.minecraft.net/MinecraftSkins/{}.png'.format('Notch')).read()
)
)
这似乎是一种相当迂回的方式(获取图像,以字节读取,将字节转换为BytesIO对象,然后将其作为图像打开)。
有更好的方法吗?
答案 0 :(得分:0)
每条评论——不;这就是文档甚至建议的内容!
<块引用>如果您在字节串中有整个图像,请将其包装在 BytesIO
对象中,然后使用 PIL.Image.open()
加载它。
尽管如此,从 Python 3.5 开始,即使这样也是不必要的,因为 HTTPResponse
s are already buffered(这也适用于 other URL libraries,例如 requests
和 urllib3
):
from PIL import Image
import urllib.request
url = input('Enter an image URL:\n> ')
im = Image.open(urllib.request.urlopen(url))
im.show()