python怎么实现图片批量压缩

  介绍

这篇文章主要介绍python怎么实现图片批量压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

python的数据类型有哪些吗?

python的数据类型:1。数字类型,包括int(整型),长(长整型)和浮子(浮点型)。2。字符串,分别是str类型和unicode类型。3。布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和虚假的(假)。4。列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5。元组,元组用“()”标识,内部元素用逗号隔开。6。字,字典典是一种键值对的集合。7。集合,集合是一个无序的,不重复的数据组合。

项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩

第一种

,一:安装包

python  -m  pip  install 枕头

二:导入包

得到PIL  import 形象   import 操作系统

三:获取图片文件的大小

def  get_size(文件):   ,,,#,获取文件大小:KB   ,,,size =, os.path.getsize(文件)   ,,,return  size /, 1024

四:输出文件夹下的文件

dir_path =, " # 39; file_path& # 39;   时间=items  os.listdir (dir_path)      for  item 拷贝项目:   ,,,#,打印(项)   ,,,path =, os.path.join (dir_path,,项目)   ,,,印刷(项)

五:压缩文件到指定大小,我期望的是150 kb,步骤和质量可以修改到最合适的数值

def  compress_image (infile,输出文件=没有,mb=150,,=10步,,质量=80):   ,,,“““不改变图片尺寸压缩到指定大小   ,,,:param  infile:,压缩源文件   ,,,:param 输出文件:,压缩文件保存地址   ,,,:param  mb:,压缩目标,KB   ,,,:param 步骤:,每次调整的压缩比率   ,,,:param 质量:,初始压缩比率   ,,,::返回,压缩文件地址,压缩文件大小   ,,,,,,   ,,,if  outfile  is 没有:   ,,,,,,,outfile =infile   ,,,o_size =, get_size (infile)   ,,,if  o_size  & lt;=, mb:   ,,,,,,,我=,Image.open (infile)   ,,,,,,,im.save(输出文件)      ,,,while  o_size 祝辞,mb:   ,,,,,,,我=,Image.open (infile)   ,,,,,,,im.save(输出文件,质量=质量)   ,,,,,,,if  quality 作用;step  & lt;, 0:   ,,,,,,,,,,,休息   ,,,,,,,quality  -=,一步   ,,,,,,,o_size =, get_size(输出文件)

六:修改图片尺寸,如果同时有修改尺寸和大小的需要,可以先修改尺寸,再压缩大小

def  resize_image (infile,输出文件=& # 39;& # 39;,,间=800):   ,,,“““修改图片尺寸   ,,,:param  infile:,图片源文件   ,,,:param 输出文件:,重设尺寸文件保存地址   ,,,:param 间:,设置的宽度   ,,,:返回:   ,,,,,,   ,,,我=,Image.open (infile)   ,,,x,, y =im.size   ,,,y_s =, int (y  *, x_s /, x)   ,,,out =, im.resize ((y_s间也),Image.ANTIALIAS)      ,,,out.save(输出文件)

七:运行程序

if  __name__ ==, & # 39; __main__ # 39;:   ,,,,,,,,,,,,,,,,,,,,,,号源路径,,,,,,#,压缩后路径   ,,,compress_image (r" file_path",, r" E: \ docs \ 2. jpg")   ,,,,,,,,,,,,,,,,,,,,号源路径,,,,,,#,压缩后路径   ,,,resize_image (r" file_path",, r" E: \ docs \ 3. jpg")

第二种

import 操作系统   得到PIL  import 形象   import ,线程、时间      def  imgToProgressive(路径):   ,,,if  not  path.split(& # 39; # 39;公司)[1:][0],拷贝(& # 39;png # 39; & # 39; jpg # 39;, & # 39; jpeg # 39;]:,, # if  path 不# 39;t  a  image 文件,返回   ,,,,,,,回来   ,,,if  os.path.isdir(路径):   ,,,,,,,回来   # # # # # # # # # # transform  img 用进步   ,,,img =, Image.open(路径)   ,,,destination =, path.split(& # 39; # 39;公司)[1][0]+ & # 39;_destination强生# 39;+ path.split(& # 39; # 39;公司)[1:][0]   ,,,试一试:   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python怎么实现图片批量压缩