# -*- 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)
调用PIL批量缩放图片分辨率
最新推荐文章于 2023-12-27 10:14:29 发布