python中实现图片压缩的方法
小编给大家分享一下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中实现图片压缩的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。