博客
关于我
python PIL 压缩图片
阅读量:349 次
发布时间:2019-03-04

本文共 1359 字,大约阅读时间需要 4 分钟。

from PIL import Imageimport osdef get_size(file):    # 获取文件大小:KB    size = os.path.getsize(file)    return size / 1024def get_outfile(infile, outfile):    if outfile:        return outfile    dir, suffix = os.path.splitext(infile)    outfile = '{}-out{}'.format(dir, suffix)    return outfiledef compress_image(infile, outfile='', mb=1000, step=10, quality=100):    """不改变图片尺寸压缩到指定大小    :param infile: 压缩源文件    :param outfile: 压缩文件保存地址    :param mb: 压缩目标,KB    :param step: 每次调整的压缩比率    :param quality: 初始压缩比率    :return: 压缩文件地址,压缩文件大小    """    o_size = get_size(infile)    if o_size <= mb:        return infile    outfile = get_outfile(infile, outfile)    while o_size > mb:        im = Image.open(infile)        im.save(outfile, quality=quality)        if quality - step < 0:            break        quality -= step        o_size = get_size(outfile)    return outfile, get_size(outfile)def resize_image(infile, outfile='', x_s=1376):    """修改图片尺寸    :param infile: 图片源文件    :param outfile: 重设尺寸文件保存地址    :param x_s: 设置的宽度    :return:    """    im = Image.open(infile)    x, y = im.size    y_s = int(y * x_s / x)    out = im.resize((x_s, y_s), Image.ANTIALIAS)    outfile = get_outfile(infile, outfile)    out.save(outfile)if __name__ == '__main__':    compress_image(r'G:\pic\app\011漫画\软著图\2020-09-28 00-19-22.jpg')    # resize_image(r'D:\learn\space.jpg')

 

转载地址:http://xrsr.baihongyu.com/

你可能感兴趣的文章
[Easy] 100. Same Tree
查看>>
PVE+集客AC+K2T-AP
查看>>
Jetson AGX Xavier硬件自启动
查看>>
网页实时显示已经运行了多少天 html+js
查看>>
判断移动端(手机)还是客户端(电脑)打开网页并跳转不同页面(首页)
查看>>
眼睛跟随鼠标转动的小黄人 html+css+js
查看>>
婚姻稳定匹配问题
查看>>
平均年龄,,数字求和
查看>>
简单的字符串操作(注意要点)
查看>>
统计字符数
查看>>
C与C++区别
查看>>
JS 数组的 every()、some() 、filter()、findIndex() 、find()、map()方法
查看>>
Vue Element UI Upload 上传多张图片
查看>>
JS数据类型的判断
查看>>
Vue面试题总结
查看>>
实现一个简易Vue(三)Compiler
查看>>
仿小米商城(上)
查看>>
仿小米商城(下)
查看>>
【30】kotlin 闭包
查看>>
文件md5怎么会变化
查看>>