compress_dir_img.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import os
  2. from PIL import Image
  3. import argparse
  4. def convert_to_webp(dir_path):
  5. common_image_extensions = [".jpg", ".jpeg", ".png"]
  6. for subdir, dirs, files in os.walk(dir_path):
  7. for file in files:
  8. filepath = subdir + os.sep + file
  9. if filepath.endswith(".webp"):
  10. continue
  11. if not any(filepath.lower().endswith(ext) for ext in common_image_extensions):
  12. continue
  13. try:
  14. img = Image.open(filepath)
  15. if img.format == "WEBP":
  16. continue
  17. print("检测到其他格式图片:" + filepath)
  18. webp_path = filepath + ".webp"
  19. img.save(webp_path, "WEBP")
  20. os.remove(filepath)
  21. os.rename(webp_path, filepath)
  22. except IOError:
  23. print(f"Cannot convert {file}")
  24. if __name__ == "__main__":
  25. parser = argparse.ArgumentParser(description='Convert images to webp format.')
  26. parser.add_argument('dir_path', type=str, help='Directory path to scan for images')
  27. args = parser.parse_args()
  28. convert_to_webp(args.dir_path)
  29. # python compress_dir_img.py /path/to/directory