压缩图片大小脚本

此脚本将图片压缩到小于600kb,可以修改参数target_size_kb,指定压缩大小

import os
from PIL import Image

def resize_image(input_folder, output_folder, target_size_kb=600):
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    for filename in os.listdir(input_folder):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            filepath = os.path.join(input_folder, filename)
            img = Image.open(filepath)

            # 调整图像质量以降低文件大小
            quality = 95  # 初始图像质量
            while True:
                output_filepath = os.path.join(output_folder, filename)
                img.save(output_filepath, quality=quality)
                file_size_kb = os.path.getsize(output_filepath) / 1024  # 文件大小(KB)

                if file_size_kb <= target_size_kb or quality < 10:  # 降低质量直至达到目标大小或质量太低
                    break
                quality -= 5  # 逐步降低图像质量

            # 如果仍然太大,进一步缩小图像尺寸
            if file_size_kb > target_size_kb:
                scale_factor = (target_size_kb / file_size_kb) ** 0.5  # 计算比例
                new_width = int(img.width * scale_factor)
                new_height = int(img.height * scale_factor)
                resized_img = img.resize((new_width, new_height), Image.ANTIALIAS)

                # 重新保存缩小后的图像
                resized_img.save(output_filepath, quality=quality)

            print(f"{filename} 已处理,最终文件大小约为: {os.path.getsize(output_filepath) / 1024:.2f} KB")

# 使用方法
input_folder = 'C:\\Users\\zhan wang\\Pictures\\Saved Pictures\\0914'
output_folder = 'C:\\Users\\zhan wang\\Pictures\\Saved Pictures\\091401'

resize_image(input_folder, output_folder)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值