python批量压缩文件夹内图片文件到指定大小代码

代码语言:python

所属分类:其他

代码描述:python批量压缩文件夹内图片文件到指定大小代码,可指定文件压缩的大小,批量压缩目录及子目录下所有图片文件。

代码标签: python 批量 压缩 文件夹 图片 文件 指定 大小 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import os
from PIL import Image

def ensure_dir(directory):
    """确保目录存在,如果不存在则创建该目录"""
    if not os.path.exists(directory):
        os.makedirs(directory)

def compress_image_to_size(input_path, output_path, max_size_kb, quality_step=5):
    quality = 90
    img = Image.open(input_path)
    original_mode = img.mode
    if original_mode == 'RGBA' or original_mode == 'P' or original_mode == 'LA':
        img = img.convert('RGBA')  # 从P转换为RGBA,确保透明度被保持
        img.save(output_path, 'PNG', optimize=True)  # 保存为PNG,因为JPEG不支持透明度
    else:
        # 仅非透明度图片保存为JPEG
        while quality > 0:
            img.save(output_path, 'JPEG', quality=quality)
            if os.path.getsize(output_path) <= max_size_kb * 1024:
                break
            else:
                quality -= quality_step
        if quality == 0 and os.path.getsize(output_path) > max_size_kb * 1024:
            print(f"Warning: Could not compress image to be under {max_size_kb}KB at reasonable quality.")
        else:
            print(f"Image com.........完整代码请登录后点击上方下载按钮下载查看

网友评论0