1. 引言
PIL,全称 Python Image Library,主要作用是图像处理
在大多数的项目中,可能用的较多的就是对上传图片的压缩和缩放
下面方法是本人在项目中使用的,用于等比例压缩图片的方法
2. 封装方法
def compress_image(source, dest, width):
"""
压缩图片,通过参数width指定压缩后的图片大小
:param source: 图片的源路径
:param dest: 压缩后保存的途径
:param width: 指定宽度
:return:
"""
from PIL import Image
# 如果图片宽度大于指定宽度。则调整为指定的高度
im = Image.open(source)
x, y = im.size # 获取源图片的宽高
if x > width:
# 等比例缩放
ys = int(y * width / x)
xs = width
# 调整当前图片的尺寸(同时也会压缩大小)
temp = im.resize((xs, ys), Image.ANTIALIAS)
# 将图片保存并使用80%的质量进行压缩(继续压缩)
temp.save(dest, quality=80)
else: # 如果尺寸小于指定宽度则不缩减尺寸,只压缩保存
im.save(dest, quality=80)