Python|批量编辑图片尺寸

需求示例:
1,原图为长方形,需统一修改为正方形图(上下增加白色背景画布)
2,同时统一图片尺寸为800X800像素

第一步:
在图片所在文件夹新建记事本,文件名称保存为

resize_to_square.py

第二步:右键用记事本打开py文件
复制以下代码

import os
from PIL import Image
根目录C:\Users\Downloads\photo
user_profile = os.environ['USERPROFILE']
base_dir = os.path.join(user_profile, 'Downloads', 'photo')
output_folder = os.path.join(base_dir, '800x800_done')
target_size = (800, 800)
bg_color = (255, 255, 255) # 白色背景
os.makedirs(output_folder, exist_ok=True)
print("----------------------------------------")
print(f"正在全盘递归扫描文件夹: {base_dir}")
count = 0
os.walk 自动深入所有子文件夹包括 input_images查找图片
for root, dirs, files in os.walk(base_dir):
# 跳过自己生成的输出文件夹
if '_800x800_done' in root:
continue
for file in files: # 跳过 python 脚本本身 if file.endswith('.py'): continue file_path = os.path.join(root, file) # 尝试作为图片读取 try: with Image.open(file_path) as img: img = img.convert("RGB") # 等比例缩放最长边不超过 800) img.thumbnail(target_size, Image.Resampling.LANCZOS) # 创建 800x800 白色画布并居中粘贴 canvas = Image.new("RGB", target_size, bg_color) paste_x = (target_size[0] - img.width) // 2 paste_y = (target_size[1] - img.height) // 2 canvas.paste(img, (paste_x, paste_y)) # 保存到最终输出目录 clean_name = os.path.splitext(file)[0] + ".jpg" output_path = os.path.join(output_folder, clean_name) canvas.save(output_path, "JPEG", quality=95) count += 1 print(f"[{count}] 成功转换: {file} -> {clean_name}") except Exception: # 忽略非图片文件 pass
print("----------------------------------------")
print(f"处理完成!共成功转换 {count} 张图片。")
print(f"请打开此文件夹查看结果: {output_folder}")

* 根据实际文件位置,修改根目录

第三步:命令提示符Win + R),输入 cmd, 回车
输入以下代码或直接把py文件拖入cmd对话框中

python C:\Users\Downloads\photo\resize_to_square.py

程序执行完成后,会在文件夹中显示尺寸为800的正方形图片文件。