python中实现图片压缩的方法

发布时间:2020-07-17 09:56:17 作者:清晨
来源:亿速云 阅读:2824

小编给大家分享一下python中实现图片压缩的方法,相信大部分人都还不怎么了解,因此分享这边文章给大家学习,希望大家阅读完这篇文章后大所收获,下面让我们一起去学习方法吧!

python实现图片压缩的方法:1、导入Image包;2、使用get_size(file)命令获取图片文件的大小;3、使用【os.path.splitext()】方式拼接文件地址;然后压缩文件到指定大小;4、修改图片尺寸即可。

python中实现图片压缩的方法

一、导入包

from PIL import Image
import os

二、获取图片文件的大小

def get_size(file):    
        # 获取文件大小:KB        
       size = os.path.getsize(file)    
       return size / 1024

三、拼接输出文件地址

def get_outfile(infile, outfile):    
    if outfile:        
       return outfile        
    dir, suffix = os.path.splitext(infile)
    outfile = '{}-out{}'.format(dir, suffix)    
    return outfile

四、压缩文件到指定大小

def compress_image(infile, outfile='', mb=150, step=10, quality=80):   
      """不改变图片尺寸压缩到指定大小        
      :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'D:\learn\space.jpg')      
    resize_image(r'D:\learn\space.jpg')

以上是python中实现图片压缩的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. vue中如何实现图片压缩file文件
  2. 如何实现JS图片压缩

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:详解Js中on和addEventListener

下一篇:Gmail访问助手

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》