如何用Python批量处理图片?

2025-12发布4次浏览

在Python中批量处理图片,可以使用Pillow库(PIL的升级版)来实现。Pillow是一个强大的图像处理库,支持多种格式的图像文件,如JPEG、PNG、GIF等。以下是一个详细的步骤,展示如何使用Python批量处理图片。

安装Pillow库

首先,确保你已经安装了Pillow库。如果没有安装,可以使用pip进行安装:

pip install Pillow

编写批量处理脚本

接下来,编写一个Python脚本来批量处理图片。假设我们要对指定文件夹中的所有JPEG图片进行缩放和转换成PNG格式。

from PIL import Image
import os

def batch_process_images(input_folder, output_folder, size=(800, 600)):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    # 遍历输入文件夹中的所有文件
    for filename in os.listdir(input_folder):
        if filename.endswith(".jpg") or filename.endswith(".jpeg"):
            # 打开图片
            img_path = os.path.join(input_folder, filename)
            img = Image.open(img_path)
            
            # 缩放图片
            img_resized = img.resize(size)
            
            # 转换格式并保存
            output_filename = os.path.splitext(filename)[0] + ".png"
            output_path = os.path.join(output_folder, output_filename)
            img_resized.save(output_path, "PNG")
            
            print(f"Processed {filename} and saved as {output_filename}")

# 使用示例
input_folder = "path/to/input/folder"
output_folder = "path/to/output/folder"
batch_process_images(input_folder, output_folder)

解释代码

  1. 导入库:导入Pillow库中的Image模块和os模块。
  2. 定义函数:定义一个函数batch_process_images,接受输入文件夹、输出文件夹和目标尺寸作为参数。
  3. 创建输出文件夹:检查输出文件夹是否存在,如果不存在则创建。
  4. 遍历文件:遍历输入文件夹中的所有文件,只处理以.jpg.jpeg结尾的文件。
  5. 打开和缩放图片:使用Image.open打开图片,并使用resize方法进行缩放。
  6. 保存图片:将缩放后的图片保存为PNG格式到输出文件夹。
  7. 打印信息:打印处理后的文件名信息。

扩展功能

你可以根据需要扩展这个脚本,例如:

  • 添加更多图像处理功能,如旋转、裁剪、调整亮度等。
  • 处理其他图像格式,如GIF、BMP等。
  • 添加错误处理,确保脚本在遇到问题时不会崩溃。

通过这种方式,你可以灵活地使用Python批量处理图片,满足各种需求。