from PIL import Image, UnidentifiedImageError
import os

directory = "./"  # Replace with the path to your folder
max_size = 500  # Replace with the maximum file size you want for your images in kilobytes

error_files = []

for filename in os.listdir(directory):
    if filename.endswith(".jpg") or filename.endswith(".jpeg") or filename.endswith(".png"):
        try:
            with Image.open(directory + filename) as im:
                quality = 75  # Initial quality level
                while os.path.getsize(directory + filename) > max_size * 1024 and quality > 10:
                    im.save(directory + filename, optimize=True, quality=quality)
                    quality -= 20  # Reduce quality level by 5 each time
                print("Done")
        except (UnidentifiedImageError, OSError):
            error_files.append(filename)
            print("Error")
            continue

print("Files with errors:", error_files)
