python PIL 压缩图片
发布日期:2021-05-07 18:53:36 浏览次数:13 分类:技术文章

本文共 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')

 

上一篇:python 图片相似度计算
下一篇:易语言,向当前句柄输入文本 文本投递不生效

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月04日 05时27分24秒