有时候我们遇到分析服务器上存储的图片的业务需求,通过捕获其像素尺寸等信息来分析一下图片质量是否符合要求。
假定给出一个URL,如何从服务器捕获该URL所对应的图片的相关信息呢?
利用Python的urllib及PIL中的Image即可轻松实现。
废话少说,直接上码:
首先导入相关包:
import urllib
from PIL import Image
然后,定义类:
class get_image:
def __init__(self,url):
try:
self.img = Image.open(urllib.request.urlopen(url))
except:
self.img = -1
def imgsize(self):
if self.img == -1:
return "Error"
return list(self.img.size)
def imgformat(self):
if self.img == -1:
return "Error"
return self.img.format
上述代码中,我将读取URL的步骤与捕获图片尺寸、格式的函数封装成了一个类,通过下面的方式实例化一个get_image类即可读取一张网络图片:
img = get_image(url)
实例化之后,即可调用类中定义的方法:
imsize = img.imgsize()
imformat = img.imgformat()
具体操作及结果如下:
In [4]:img = get_image(url)
In [5]:img.imgsize()
Out[5]: [382, 300]
In [6]:img.imgformat()
Out[6]: 'JPEG'
OK,至此我们就搞定了如何从URL中提取图片信息,大家赶紧去试试吧~