功能:
对目标目录下的所有图片按比例进行缩放,缩放后的图片保存到指定目录。
实现脚本:
import os
from PIL import Image
def resize_images(input_folder, output_folder, scale_percent=13):
"""
批量缩小图片至指定百分比
:param input_folder: 输入图片文件夹路径
:param output_folder: 输出图片文件夹路径
:param scale_percent: 缩放百分比(默认13%)
"""
# 确保输出文件夹存在
os.makedirs(output_folder, exist_ok=True)
# 支持的图片格式
valid_extensions = ('.jpg', '.jpeg', '.png', '.webp', '.bmp', '.tiff')
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):
# 检查文件是否为图片
if filename.lower().endswith(valid_extensions):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, filename)
try:
# 打开图片并计算新尺寸
with Image.open(input_path) as img:
# 计算新尺寸(保持宽高比)
width, height = img.size
new_width = int(width * scale_percent / 100)
new_height = int(height * scale_percent / 100)
# 高质量缩小图片(使用LANCZOS重采样)
resized_img = img.resize(
(new_width, new_height),
resample=Image.LANCZOS
)
# 保存图片(保持原始格式和质量)
if img.format == 'JPEG':
resized_img.save(output_path, 'JPEG', quality=95)
else:
resized_img.save(output_path)
print(f" 已处理: {filename} [{width}x{height}] -> [{new_width}x{new_height}]")
except Exception as e:
print(f" 处理失败 {filename}: {str(e)}")
if __name__ == "__main__":
# 配置参数
INPUT_FOLDER = r"D:\原始图片" # 替换为你的输入文件夹路径
OUTPUT_FOLDER = r"D:\原始图片" # 替换为你的输出文件夹路径
SCALE_PERCENT = 13 # 缩放百分比
# 执行批量处理
resize_images(INPUT_FOLDER, OUTPUT_FOLDER, SCALE_PERCENT)
print("\n批量处理完成!")
实现效果: