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

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

一、导入包

fromPILimportImageimportos

二、获取图片文件的大小

defget_size(file):#获取文件大小:KBsize=os.path.getsize(file)returnsize/1024

三、拼接输出文件地址

defget_outfile(infile,outfile):ifoutfile:returnoutfiledir,suffix=os.path.splitext(infile)

outfile='{}-out{}'.format(dir,suffix)returnoutfile

四、压缩文件到指定大小

defcompress_image(infile,outfile='',mb=150,step=10,quality=80):"""不改变图片尺寸压缩到指定大小:paraminfile:压缩源文件:paramoutfile:压缩文件保存地址:parammb:压缩目标,KB:paramstep:每次调整的压缩比率:paramquality:初始压缩比率:return:压缩文件地址,压缩文件大小"""o_size=get_size(infile)ifo_size<=mb:returninfileoutfile=get_outfile(infile,outfile)whileo_size>mb:im=Image.open(infile)im.save(outfile,quality=quality)ifquality-step<0:breakquality-=stepo_size=get_size(outfile)returnoutfile,get_size(outfile)

五、修改图片尺寸

defresize_image(infile,outfile='',x_s=1376):"""修改图片尺寸:paraminfile:图片源文件:paramoutfile:重设尺寸文件保存地址:paramx_s:设置的宽度:return:"""im=Image.open(infile)x,y=im.sizey_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中实现图片压缩的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!