前言
项目中经常使用图像导入,图像太大,导入速度太慢,需要统一压缩文件
一:导入软件包
来自pil导入图像
导入操作系统
2 :获取图像文件的大小
defget_size(file ) :
#获取文件大小:KB
size=os.path.getsize(file )
返回大小/1024
(三)连接输出文件地址
efget_outfile(infile,outfile ) :
if outfile:
返回轮廓
dir,suffix=OS.path.splitext(infile ) ) ) ) )。
outfile='{}-out{}'.format(dir,suffix ) )。
返回轮廓
(四)将文件压缩到指定大小。 优选为150KB。 step和quality可以修改为最佳值
defcompress_image(infile,outfile=',mb=150,step=10,quality=80 ) :
“”压缩为指定的大小,而不更改图像大小
:param infile:压缩源文件
:param outfile:压缩文件存储位置
:param mb:压缩目标,KB
每3360paramstep33601次调整的压缩率
: param质量:初始压缩率
:return:压缩文件地址、压缩文件大小
''''
o_size=get_size(infile )
if o_size=mb:
返回信息
outfile=get_outfile(infile,outfile ) )。
while o_size mb:
im=image.open(infile ) )。
im.save(outfile,quality=quality ) )。
if质量- step 0:
布雷克
质量-=步骤
o_size=get_size(outfile )
返回轮廓,get _ size (轮廓)
(五)修改照片尺寸。 如果需要同时修改大小和大小,可以在压缩大小之前修改大小
defresize_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__':
压缩_ image (r ' d : (learn (space.jpg ) ) )。
resize_image(r'd:(learn ) space.jpg ) ) ) ) ) ) ) )。
希望以上是正文的全部内容,对大家的学习有帮助。 另外,我希望大家多多支持谷点计划。