用python批量修改图片尺寸

将某文件夹下的图片进行批量修改成统一尺寸,并保存于新的文件夹下

具体直接使用源码运行便知

import glob
import os
from PIL import Image
print("提示:输入路径应该为正则写法!")
# 各参数可自行写死固定
beforeDir = input(
    "请输入需要处理的图片文件路径,如:E:\\\\zzzzttt\\\\16\\\\*.png\t") or "E:\\zzzzttt\\1\\*.png"
afterDir = input("请输入处理后存放的文件目录:如:E:\\\\zzzzttt\\\\temp\t") or "E:\\zzzzttt\\2"
# 缩放后图片宽高,以及文件后缀
img_w = int(input('请输入缩放后图片宽度:') or 192)
img_h = int(input('请输入缩放后图片高度:') or 111)
img_type = input('请输入修改后的文件后缀,默认则不修改:\t')
if beforeDir == "":
    print('原图片路径正则错误')
    exit(0)
if afterDir == "":
    print('新文件目录无效')
    exit(0)
# 判断新文件目录是否存在,不存在则创建
if os.path.isdir(afterDir) == False:
    os.mkdir(afterDir)


def convertImage(file, outdir, width, height, type):
    img = Image.open(file)
    try:
        new_img = img.resize((width, height), Image.BILINEAR)
        if type != "":
            temp = os.path.join(outdir, os.path.basename(file))
            new_img.save(os.path.splitext(temp)[0]+'.'+type)
        else:
            new_img.save(os.path.join(outdir, os.path.basename(file)))
    except Exception as e:
        print(e)


def start(oldDir, newDir, width, height, type):
    for file in glob.glob(oldDir):
        convertImage(file, newDir, width, height, type)


# 开始执行
start(beforeDir, afterDir, img_w, img_h, img_type)


# 没啥用,就只是为了直观知道代码有效执行结束
input('按任意键退出...')
exit(0)

你可能感兴趣的:(脚本,python)