Python脚本批量处理图片,批量压缩图片,轻松压缩路径下的所有图片

了解如何使用Python编写一个简单实用的图片压缩工具,它可以轻松压缩指定路径下的所有图片。通过该工具,您可以快速减小图片文件的大小,节省存储空间并提高网页加载速度。本文将介绍如何使用Python编写图片压缩工具,并演示了两种压缩方法,包括同类型压缩和转换为jpg格式进行压缩。跟随本文一起学习吧!

image-20230704120046179

介绍

在现代社交媒体和网页设计中,图像是不可或缺的元素之一。然而,高分辨率的图片文件往往占用大量的存储空间,导致网页加载速度变慢,用户体验下降。为了解决这个问题,我们可以使用Python编写一个简单而实用的图片压缩工具,它能够快速压缩指定路径下的所有图片文件。

实现图片压缩工具的准备工作

在开始编写代码之前,我们需要安装Python的Pillow库,它提供了强大的图像处理功能。可以通过以下命令来安装Pillow库:

pip install pillow

安装完成后,我们可以开始编写代码来实现图片压缩工具。

Python代码实现

下面是使用Python编写的图片压缩工具代码:

import os
from PIL import Image

def compress_images(input_dir, output_dir, quality=80):
    # 确保输出文件夹存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 遍历输入文件夹中的所有文件
    for filename in os.listdir(input_dir):
        file_path = os.path.join(input_dir, filename)

        # 检查文件是否为图片
        if not os.path.isfile(file_path) or not any(file_path.endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
            continue

        # 打开图像文件
        with Image.open(file_path) as image:
            # 压缩图像并保存到输出文件夹
            output_path = os.path.join(output_dir, filename)
            image.save(output_path, optimize=True, quality=quality)
            print(f'Compressed: {output_path}')

# 指定输入和输出文件夹路径
input_folder = './'  # 输入文件夹路径
output_folder = './output'  # 输出文件夹路径
quality = 70  # 压缩等级 1-100

# 调用函数进行图片压缩
compress_images(input_folder, output_folder, quality)

以上代码使用了Python的os模块和Pillow库。首先,我们定义了一个compress_images函数,它接受输入文件夹路径、输出文件夹路径和可选的压缩质量参数。在函数内部,我们通过遍历输入文件夹中的所有文件,筛选出扩展名为.jpg.jpeg.png的图片文件。然后,我们使用Pillow库打开每个图片文件,并将其压缩保存到输出文件夹中。压缩后的图片文件保持原文件名。

不同类型转为jpg格式进行压缩

上面同类型进行压缩有时候并不能很好压缩图片,比如都是png格式,压缩后并没有减少多少体积,那么我们就需要进行转换为jpg格式压缩,能大大减少图片体积

import os
from PIL import Image

def compress_images(input_dir, output_dir, quality=80):
    # 确保输出文件夹存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 遍历输入文件夹中的所有文件
    for filename in os.listdir(input_dir):
        file_path = os.path.join(input_dir, filename)

        # 检查文件是否为图片
        if not os.path.isfile(file_path) or not any(file_path.endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
            continue

        # 打开图像文件
        with Image.open(file_path) as image:
            # 压缩图像并保存到输出文件夹
            output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + '.jpg')
            image.convert('RGB').save(output_path, optimize=True, quality=quality)
            print(f'Compressed: {output_path}')

# 指定输入和输出文件夹路径
input_folder = './'  # 输入文件夹路径
output_folder = './output'  # 输出文件夹路径
quality = 40  # 压缩等级 1-100

# 调用函数进行图片压缩
compress_images(input_folder, output_folder, quality)

保存并运行脚本

将Python脚本保存,并在命令行中运行它:python compress_images.py

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容