当使用Python中的Pillow库(PIL)来处理图像时,我们通常需要将图像从本地文件中加载,但有时我们也需要从URL中加载图像。在下面的攻略中,我将向你展示如何在Pillow中从URL中加载图像。
步骤1:安装Pillow库
在进行任何操作之前,首先必须要保证已经安装了Pillow库,可以通过以下命令安装:
pip install Pillow
步骤2:从URL中打开图像
使用Pillow库从URL中打开图像的过程非常简单,我们可以使用PIL.Image.open()
函数来从URL中加载图像。以下是示例代码:
from PIL import Image
from io import BytesIO
import requests
url = 'https://avatars.githubusercontent.com/u/6120181?v=4'
response = requests.get(url)
image = Image.open(BytesIO(response.content))
image.show()
在上述代码中:
requests.get(url)
函数用于获取URL中的图像。BytesIO(response.content)
函数用于将获取到的数据转换为BytesIO对象。Image.open()
函数用于从BytesIO中打开图像。
在打开图像后,我们可以使用show()
函数来显示图像。
另外一个示例代码:
from PIL import Image
import urllib.request
url='https://specials-images.forbesimg.com/imageserve/5eff3ea3e0fb6400078c2701/960x0.jpg?fit=scale'
image=Image.open(urllib.request.urlopen(url))
image.show()
在上述代码中,我们使用了Python的标准库urllib.request
来打开URL,并将其传递给Image.open()
函数来打开图像。
步骤3:处理图像
有了图像之后,我们可以对其进行各种处理,例如修改大小、旋转、剪切、过滤等。以下是一个将图像裁剪为正方形的示例代码:
from PIL import Image
import urllib.request
url = 'https://avatars.githubusercontent.com/u/6120181?v=4'
image = Image.open(urllib.request.urlopen(url))
width, height = image.size
if width > height:
left = (width - height) / 2
right = width - left
upper = 0
lower = height
else:
upper = (height - width) / 2
lower = height - upper
left = 0
right = width
image = image.crop((left, upper, right, lower))
image.show()
在上述代码中,我们通过比较图像的宽度和高度来确定应该裁剪的尺寸。如果宽度大于高度,则裁剪左右两边使其成为正方形;如果高度大于宽度,则裁剪上下两边。
总结
本文介绍了如何使用Python中的Pillow库(PIL)从URL中打开图像。我们使用PIL.Image.open()
函数来从URL中加载图像,并使用各种Pillow提供的函数对其进行处理。