图片压缩功能
This commit is contained in:
parent
1dfb9626cc
commit
0b8884cc2a
|
@ -0,0 +1,25 @@
|
||||||
|
import os
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
def compress_image(infile, outfile='', kb=80, step=10, quality=80):
|
||||||
|
"""不改变图片尺寸压缩到指定大小
|
||||||
|
:param infile: 压缩源文件
|
||||||
|
:param outfile: 压缩文件保存地址
|
||||||
|
:param kb: 压缩目标, KB
|
||||||
|
:param step: 每次调整的压缩比率
|
||||||
|
:param quality: 初始压缩比率
|
||||||
|
:return: 压缩文件地址,压缩文件大小
|
||||||
|
"""
|
||||||
|
o_size = os.path.getsize(infile)/1024
|
||||||
|
if o_size <= kb:
|
||||||
|
return infile
|
||||||
|
if outfile == '':
|
||||||
|
outfile = infile
|
||||||
|
while o_size > kb:
|
||||||
|
im = Image.open(infile)
|
||||||
|
im.save(outfile, quality=quality)
|
||||||
|
if quality - step < 0:
|
||||||
|
break
|
||||||
|
quality -= step
|
||||||
|
o_size = os.path.getsize(outfile)/1024
|
||||||
|
return outfile, o_size
|
Loading…
Reference in New Issue