调用PIL批量缩放图片分辨率

# -*- coding: utf-8 -*-   


"""调用PIL批量缩放图片分辨率
Usage:
imgdeal <IMGDIR> <MULTIPLE> <FORMAT>
"""
import os
from docopt import docopt
from PIL import Image

#遍历文件夹   
def img_convert(IMGDIR, MULTIPLE, FORMAT):
    for eachImage in os.listdir(IMGDIR):
        if eachImage.endswith(FORMAT):
            # srcFile原文件路径与名称,dstFile保存后的路径与名称,dstDir保存后的路径
            # imgFactor = os.stat(eachImage).st_size / MULTIPLE
            srcFile = os.path.join(IMGDIR, eachImage)
            dstFile = "{}\deal\{}".format(IMGDIR, eachImage)
            # SyntaxError: EOL while,所以是双斜杠
            dstDir = "{}deal\\".format(IMGDIR)
            if not os.path.exists(dstDir):
                os.makedirs(dstDir)
            # print(dstDir)
            sImg = Image.open(srcFile)
            w,h = sImg.size
            dImg = sImg.resize((int(w/int(MULTIPLE)),int(h/int(MULTIPLE))),Image.ANTIALIAS)
            # Image.NEAREST :低质量; Image.BILINEAR:双线性 ; Image.BICUBIC :三次样条插值; Image.ANTIALIAS:高质量
            dImg.save(dstFile)
            print("compress {} to {}".format(eachImage, dstDir))

if __name__ == '__main__':
    # 将绑定交互参数
    arguments = docopt(__doc__)
    IMGDIR = arguments['<IMGDIR>']
    MULTIPLE = arguments['<MULTIPLE>']
    FORMAT = arguments['<FORMAT>']
    img_convert(IMGDIR, MULTIPLE, FORMAT)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值