python利用线程生成不同尺寸的缩略图

利用线程生成缩略图;
读取当前路径下的png文件,在当前路径下生成6464,128128和32*32的缩略图。

"""
利用线程生成缩略图
读取当前路径下的png文件,在当前路径下生成64*64,128*128和32*32的缩略图
"""
import glob
import os
import threading
from PIL import Image


def generate_thumbnail(infile, size):
    """生成指定图片文件的缩略图"""
    file, ext = os.path.splitext(infile)
    file = file[file.rfind('/') + 1:]  # 查找文件名
    outfile = f'{file}_{size[0]}_{size[1]}{ext}'  # 生成缩略图的文件名
    img = Image.open(infile)
    img.thumbnail(size, Image.ANTIALIAS)  # 进行缩略图  size为元组   Image.ANTIALIAS表示低质量
    img.save(outfile)


def main():
    """主函数"""
    for infile in glob.glob('*.png'):  # 查找当前路径下的png文件
        for size in (32, 64, 128):  # 利用线程生成多个尺寸的缩略图
            # 创建并启动线程
            threading.Thread(
                target=generate_thumbnail,
                args=(infile, (size, size))
            ).start()

if __name__ == '__main__':
    main()

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