import os from pathlib import Path from PIL import Image from tqdm import tqdm # we only consider jpeg artifact, not subsampling subsampling=0 target_quailty=[10,20,30,40] for quality in target_quailty: Path(f"./X{quality}").mkdir(exist_ok=True) for file in tqdm(os.listdir(".")): if file.endswith(".png"): image_pil=Image.open(file) image_pil=image_pil.convert("L") basename=os.path.splitext(file)[0] for quality in target_quailty: image_pil.save(f"./X{quality}/{basename}.jpg","jpeg",quality=quality,subsampling=subsampling)