起源是我收藏了很多照片,但是太大的照片不利于分享使用,而且我并不需要那么高清晰度,通过在线压缩工具tinypng又太慢
拥有python
下载python教程有很多,但我推荐使用anaconda管理python,可以灵活的管理python版本,还不会导致本地版本冲突
压缩脚本
安装pillow库,我在pycharm里可以直接安装到conda里,实在好管理
pip install Pillow
使用r反斜杠\
不会被当作转义字符来处理
下面代码的主要功能就是把本地文件夹里的图片压缩质量(也就是大小)输出到另一个文件夹,但为了方便也可以原地输出(会覆盖掉原图片,谨慎)
# 导入Pillow库中的Image模块,用于处理图片
from PIL import Image
# 导入os模块,用于与操作系统交互,如读取文件列表
import os
# 定义一个函数,用于压缩图片
def compress_image(input_folder, output_folder, quality):
# 遍历输入文件夹中的每个文件
for filename in os.listdir(input_folder):
# 检查文件是否是支持的图片格式
# 使用lower()方法确保文件扩展名不区分大小写
if filename.lower().endswith((".jpg", ".jpeg", ".png", ".bmp", ".gif", ".webp")):
# 使用Image.open打开输入文件夹中的图片文件
img = Image.open(os.path.join(input_folder, filename))
# 获取文件扩展名
extension = os.path.splitext(filename)[1].lower()
# 根据文件类型决定是否使用quality参数
if extension == ".gif":
# 对于GIF格式,使用optimize=True来优化文件大小
# 注意:这可能会将动画GIF转换为静态图像
img.save(os.path.join(output_folder, filename), optimize=True)
else:
# 对于其他格式,保存图片到输出文件夹,并指定压缩质量
# 使用optimize=True来进一步优化文件大小
img.save(os.path.join(output_folder, filename), quality=quality, optimize=True)
# 设置输入文件夹的路径
input_folder = r"C:\Users\HML\Desktop\PictrueMaterial\雕塑"
# 设置输出文件夹的路径
output_folder = r"C:\Users\HML\Desktop\PictrueMaterial\雕塑"
# 设置压缩质量,这里设置为80
# Quality参数的取值范围是1到95,95表示最高质量
quality = 80
# 调用compress_image函数,传入输入文件夹路径、输出文件夹路径和压缩质量
compress_image(input_folder, output_folder, quality)
标签:批量,python,quality,filename,文件夹,input,folder,os
From: https://blog.csdn.net/graphyer/article/details/137634542