• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python实现图片压缩代码实例

python 搞代码 4年前 (2022-01-08) 37次浏览 已收录 0个评论

这篇文章主要介绍了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

四:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值

 def compress_image(infile, outfile='', mb=150, step=10, quality=80): """不改变图片尺寸压缩到指定大小 :param infile: 压缩源文件 :param outfile: 压缩文件保存地址 :param mb: 压缩目标,KB :param step: 每次调整的压缩比率 :param quality: 初始压缩比率 :return<i style="color:transparent">来源gaodai$ma#com搞$$代**码网</i>: 压缩文件地址,压缩文件大小 """ o_size = get_size(infile) if 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)<pre></div><p><span style="color: #ff0000"><strong>五:修改图片尺寸,如果同时有修改尺寸和大小的需要,可以先修改尺寸,再压缩大小</strong></span><br /></p><div class="gaodaimacode"><pre class="prettyprint linenums"> 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-600') resize_image(r'D:\learn\space.jpg-600')

以上就是python实现图片压缩代码实例的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python实现图片压缩代码实例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址