优草派  >   Python

Python批量压缩图片大小怎么做?Python如何批量压缩图片

罗西汉            来源:优草派

压缩图片并不是说将图片压缩成zip、rar这种格式,而是在不降低图片质量的情况下通过压缩这种方式来减少图片大小。而我们可以使用python开发批量压缩图片大小的程序,下文所介绍的就是这个程序的实现方法,想要学习的可以看一下作为参考资料。

Python批量压缩图片大小怎么做?Python如何批量压缩图片

1.那么这个python程序只需要写在py文件之中即可,首先需要导入三个库和模块。分别是用来读取图片的Pillow、将图片转为流式输出的io模块、以及实现动态质量处理的模块dynamic_quality。这几个模块和库全部都是第三方所有的,需要先使用pip工具将它们下载安装好才可以,代码如下:

from PIL import Image
from io import StringIO
import dynamic_quality

2.然后就是调用Image模块之中的方法open来打开图片,图片打开之后需要用其调用copy()函数复制出来一个对象才可以,而这个复制出来对象不会对原图像造成影响。然后再使用thumbnail()方法将复制图像缩放到和原图像一样的大小,不过需要设置平滑属性以免图像失真,代码如下:

im = Image.open("photo.jpg")
new_photo = im.copy()
new_photo.thumbnail(im.size,resample=Image.ANTIALIAS)

3.接下来就是实现图片压缩的关键了,定义变量并且给它赋值字典对象,这个字典对象是用来设置动态质量参数的。最后使用这个设置该对象属性quality的值为85或者其他质量数值都可以,并且还可以通过optimize参数以及progressive参数来让图片打开时调用CPU加载减少图片大小,详细代码示例如下:

save_args = {'format':im.format}
if im.format=='JPEG':
  save_args['quality'].value=85
  save_args['optimize']=True
  save_args['progressive=True']=True
new_photo.save("copy_photo.jpg",**save_args)

以上就是关于“Python批量压缩图片大小怎么做?Python如何批量压缩图片”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。