Python批量压缩图片

最近需要批量压缩一批图片、这个时候首先想到的肯定是python能不能帮助我完成这个问题、搜索了一下网上的教程发现还真有,总结分享一下给大家、有不明白的地方可以留言沟通

import os
from PIL import Image

def compress_images(input_folder, output_folder, target_size):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.endswith(".jpg") or filename.endswith(".png"):
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename)

            img = Image.open(input_path)

            # 保持原尺寸
            img.thumbnail((600, 338))

            # 逐渐降低质量直到满足目标大小
            img.save(output_path, optimize=True, quality=95)
            while os.path.getsize(output_path) > target_size*1000:
                img.save(output_path, optimize=True, quality=95)

            print(f"Compressed {filename} to {os.path.getsize(output_path)//1000}KB")

input_folder = "images"  # 输入文件夹路径
output_folder = "new_images"  # 输出文件夹路径
target_size = 500  # 目标大小(KB)

compress_images(input_folder, output_folder, target_size)


压缩以前8.8G 、 压缩后不到600M效率还是比较高的

posted @ 2023-09-05 12:40  知数网络  阅读(24)  评论(0编辑  收藏  举报  来源