最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python中如何实现图片压缩

    正文概述    2020-04-01   315

    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进阶视频教程


    下载网 » python中如何实现图片压缩

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元