Skip to content

Latest commit

 

History

History
97 lines (66 loc) · 3.16 KB

File metadata and controls

97 lines (66 loc) · 3.16 KB

ResizeImage 图片批量压缩工具

一个基于 Pillow 的 Python 小工具,用于批量压缩和调整图片尺寸,并统一转换为 JPG 格式。

功能

  • 等比例缩放图片(不变形)
  • 统一输出为 JPG 格式
  • 自动处理透明通道(RGBA / LA / P 模式),用白色背景合成
  • 使用高质量的 LANCZOS 重采样算法
  • 保留原文件名(仅后缀改为 .jpg
  • 显示每张图片的尺寸与文件大小变化

依赖

pip install Pillow

目录结构

脚本运行时会读写脚本所在目录下的两个子文件夹:

ResizeImage/
├── resize.py          # 主脚本
├── docs/
│   └── instruction.md # 本说明文档
├── original/          # 【输入】把要处理的图片放这里
└── resized/           # 【输出】处理后的图片自动生成在这里
  • original/ 需要手动创建,并把原始图片放入其中
  • resized/ 脚本会自动创建(若不存在)

使用方法

  1. ResizeImage/ 下创建 original/ 文件夹,放入待处理的图片
  2. 运行脚本:
python resize.py
  1. 处理完成后,在 resized/ 文件夹中查看输出结果

支持的输入格式

.jpg / .jpeg / .png / .gif / .bmp / .webp / .tiff

输出统一为 .jpg

可调参数

参数位于 resize.py:16resize_image() 函数签名中:

参数 默认值 说明
max_dimension 1000 最大宽度或高度(单位:像素)。宽高中较大的一边会被缩放到此值,另一边按比例缩放;若原图两边都已小于等于该值,则保持原尺寸
quality 95 JPG 保存质量,取值范围 1–95(Pillow 推荐上限 95)。数值越高越清晰、文件越大

如何修改参数

目前 process_images() 调用 resize_image() 时没有显式传参,使用的是函数默认值。要修改,有两种方式:

方式一:修改默认值(最简单)

编辑 resize.py:16,直接改函数签名的默认值:

def resize_image(input_path, output_path, max_dimension=1500, quality=90):

方式二:在调用处显式传参

编辑 resize.py:124,把调用改为:

if resize_image(img_path, output_path, max_dimension=1500, quality=90):

处理逻辑说明

  1. 遍历 original/ 中所有受支持扩展名的文件
  2. 对每张图片:
    • 若为带透明通道的模式(RGBA/LA/P),先合成到白色背景上
    • 若宽或高超过 max_dimension,按比例缩放到不超过该值
    • 若宽高都已不超过 max_dimension,保持原尺寸
    • quality 指定的质量保存为 JPG,并开启 optimize=True
  3. 输出文件名:原文件名.jpg(相同 stem,不同后缀)

注意事项

  • 同名覆盖:如果 resized/ 已有同名 .jpg 文件,会被直接覆盖
  • 不是无损:JPG 是有损压缩,即使 quality=95 也会有轻微画质损失;如需无损请勿使用此工具
  • 透明度会丢失:PNG 的透明背景会被替换为白色
  • 只处理一层:不递归进入 original/ 的子文件夹