from PIL import Image
import os
#批量处理图片
def compressImage(srcpath,savepath):
"""如果不存在目的目录就创建一个"""
for filename in os.listdir(srcpath):
if not os.path.exists(savepath):
os.mkdir(savepath)
# 拼接完整的文件或者文件夹路径
srcfile = os.path.join(srcpath,filename)
savefile = os.path.join(savepath,filename)
# 如果是文件就处理
if os.path.isfile(srcfile):
# 打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩
old_Img = Image.open(srcfile)
width,height = old_Img.size
new_Img = old_Img.resize((width//2,height//2),Image.ANTIALIAS)
new_Img.save(savefile)
#如果是文件夹就继续递归
if os.path.isdir(srcfile):
compressImage(srcfile,srcfile)
print(savepath + " compress succeeded!")
if __name__ == "__main__":
compressImage('F:/python/testimage','F:/python/test_save_image')
1.定义一个名为compressImage的方法 需要两个参数 一个是图片路径,另一个是需要保存的路径
2.遍历每一张图片获取到图片名,并拼接完整路径
3.接着做健壮性判断 如果不存在保存路径则生成一个
4.然后进行图片处理,使用image的open方法打开图片 使用resize方法进行处理,然后保存处理后的图片
5.最后的递归保证如果是文件夹,进入下一步
网友评论