123456789101112131415161718192021222324252627282930313233343536 |
- import os
- from PIL import Image
- import argparse
- def convert_to_webp(dir_path):
- common_image_extensions = [".jpg", ".jpeg", ".png"]
- for subdir, dirs, files in os.walk(dir_path):
- for file in files:
- filepath = subdir + os.sep + file
- if filepath.endswith(".webp"):
- continue
- if not any(filepath.lower().endswith(ext) for ext in common_image_extensions):
- continue
- try:
- img = Image.open(filepath)
- if img.format == "WEBP":
- continue
- print("检测到其他格式图片:" + filepath)
- webp_path = filepath + ".webp"
- img.save(webp_path, "WEBP")
- os.remove(filepath)
- os.rename(webp_path, filepath)
- except IOError:
- print(f"Cannot convert {file}")
- if __name__ == "__main__":
- parser = argparse.ArgumentParser(description='Convert images to webp format.')
- parser.add_argument('dir_path', type=str, help='Directory path to scan for images')
- args = parser.parse_args()
- convert_to_webp(args.dir_path)
- # python compress_dir_img.py /path/to/directory
|