您当前的位置:首页 > 新闻中心 > 综合新闻

如何用Python智能批量压缩图片

时间:2017-12-22 11:06:02  

  iffilesize>=threshold:

  print(filename)

  withImage.open(filename)asim:

  width,height=im.size

  ifwidth>=height:

  new_width=int(math.sqrt(threshold/2))

  new_height=int(new_width*height*1.0/width)

  else:

  new_height=int(math.sqrt(threshold/2))

  new_width=int(new_height*width*1.0/height)

  resized_im=im.resize((new_width,new_height))

  output_filename=filename.replace(source_dir,target_dir)

  resized_im.save(output_filename)

  这样,将来无论你的图片目录在哪里,你要满足哪个写作平台的图片大小要求,都可以通过简单设置这样几个数值,调用函数来完成新需求。

  我们尝试用原先的参数取值,执行一次。

  执行之前,我们删除掉output目录,以测试功能。

  然后执行模块化之后的函数。

  resize_images(source_dir,target_dir,threshold)

  执行时,依然只是输出需要压缩的文件路径。

  image/cat.png

  检查刚刚又重新生成的output目录,猫咪照片呢?

  没问题。不仅显示正常,而且大小也已经正常压缩。

  小结

  总结一下,通过本文我们接触到了以下知识点:

  如何利用glob软件包遍历指定目录,获得符合条件的全部文件路径列表;

  如何用PIL图像处理工具读取图像文件,检查宽度、高度,重新设定图像大小,并且存储新生成的图像;

  如何用os函数库检查文件或目录是否存在,创建目录,以及获取文件尺寸。

  更重要的,是我们尝试了如何用Python这一脚本语言,帮我们智能化做出判断,并且在后台完成琐碎的重复操作。

  另外,你应该已经了解了,完成功能并不意味着完事大吉。为了让自己的代码可以充分重用、易于共享并提高效能,你需要梳理与整合代码,将其充分模块化,只曝露输入输出接口给用户(包括将来的自己),避免固定取值设置。

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门