Image compress

2019-08-08  本文已影响0人  _PatrickStar
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.最后的递归保证如果是文件夹,进入下一步

上一篇下一篇

猜你喜欢

热点阅读