压缩图片
Created At : 2022-02-02 00:00
Count:295
Views 👀 :
基于pillow进行图片压缩 import osfrom PIL import Imagedef get_size (file ): size = os.path.getsize(file) return size / 1024 def get_outfile (infile, outfile ): if outfile: return outfile dir , suffix = os.path.splitext(infile) outfile = '{}-out{}' .format (dir , suffix) return outfile def compress_image (infile, outfile='' , mb=600 , step=10 , quality=80 ): if os.path.exists(outfile): return """不改变图片尺寸压缩到指定大小 :param infile: 压缩源文件 :param outfile: 压缩文件保存地址 :param mb: 压缩目标,KB :param step: 每次调整的压缩比率 :param quality: 初始压缩比率 :return: 压缩文件地址,压缩文件大小 """ o_size = get_size(infile) if o_size <= mb: return infile outfile = get_outfile(infile, outfile) while o_size > mb: im = Image.open (infile) im.save(outfile, quality=quality) if quality - step < 0 : break quality -= step o_size = get_size(outfile) return outfile, get_size(outfile) a = r"C:\Users\DM\Desktop\图片过长\新建文件夹\1" b = r"C:\Users\DM\Desktop\图片过长\新建文件夹\2" for i in os.listdir(a): in_file = os.path.join(a, i) out_file = os.path.join(b, i) print (in_file, out_file) compress_image(in_file, out_file)