Python实战:批量图片压缩

本文详细介绍了批量图片压缩器的工作原理,包括遍历文件夹、判断图片类型、使用PIL库进行图片压缩和调整大小,以及提供了一个简单的Python示例来演示整个过程。
摘要由CSDN通过智能技术生成

一、批量图片压缩器的原理

批量图片压缩器的原理主要包括以下几个方面:

  1. 遍历文件夹:遍历指定文件夹中的所有图片文件。
  2. 判断图片类型:根据图片文件的扩展名判断图片类型,如.jpg、.png、.gif等。
  3. 压缩图片:对不同类型的图片进行相应的压缩操作。
  4. 输出结果:将压缩后的图片输出到指定文件夹或显示在控制台。

二、PIL库的使用方法

PIL(Pillow)是一个图像处理库,用于处理图像、屏幕截图和图像编辑。PIL库提供了丰富的API,可以用于创建、编辑和处理图像。

  1. 安装PIL库
    首先,需要安装PIL库。可以使用pip命令进行安装:
pip install pillow
  1. 导入PIL库
    在Python代码中,需要导入PIL库:
from PIL import Image
  1. 打开图片
    PIL库提供了打开图片的功能,可以通过以下方法打开图片:
image = Image.open('example.jpg')
  1. 调整图片大小
    PIL库提供了调整图片大小的功能,可以通过以下方法调整图片大小:
image = image.resize((new_width, new_height))
  1. 保存图片
    调整大小后的图片可以通过PIL库保存为多种格式,如JPEG、PNG、GIF等。
  2. 显示图片
    PIL库还提供了显示图像的功能,可以通过以下方法显示调整大小后的图片:
image.show()

三、用Python实现一个简单的批量图片压缩器

下面是一个使用Python和PIL库实现简单批量图片压缩器的示例:

import os
from PIL import Image
def compress_image(image_path, output_path):
    # 打开图片
    image = Image.open(image_path)
    # 调整图片大小
    image = image.resize((int(image.width * 0.5), int(image.height * 0.5)))
    # 保存图片
    image.save(output_path)
def compress_images(folder_path, output_folder_path):
    # 创建输出文件夹
    if not os.path.exists(output_folder_path):
        os.makedirs(output_folder_path)
    # 遍历文件夹
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            # 获取文件完整路径
            file_path = os.path.join(root, file)
            # 判断文件类型
            if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.gif'):
                # 压缩图片
                compress_image(file_path, os.path.join(output_folder_path, file))
if __name__ == '__main__':
    # 指定源文件夹路径
    source_folder_path = 'path/to/source/folder'
    # 指定输出文件夹路径
    output_folder_path = 'path/to/output/folder'
    # 压缩图片
    compress_images(source_folder_path, output_folder_path)

这个示例定义了两个函数,compress_image()用于压缩单个图片,compress_images()用于遍历指定文件夹中的所有图片文件并调用compress_image()函数进行压缩。在主函数中,首先指定源文件夹路径和输出文件夹路径,然后调用compress_images()函数进行批量图片压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值