详解使用Python PIL对指定文件夹中的所有图片进行修改

  • Post category:Python

下面是使用Python PIL对指定文件夹中的所有图片进行修改的完整攻略:

1. 安装PIL库

在Python中使用PIL库来处理图片,需要先安装PIL库。可以使用pip在命令行中输入以下命令进行安装:

pip install Pillow

2. 导入PIL库和os库

在Python文件开头,需要导入PIL库和os库,以便对图片进行批量处理和读取。

from PIL import Image
import os

3. 定义函数进行图片处理

下面是一个示例函数,可以实现将图片大小调整到给定的尺寸。

def resize_images(input_dir, output_dir, size):
    for root, dirs, files in os.walk(input_dir):
        for file in files:
            if file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.png'):
                try:
                    # 打开原始图片
                    with Image.open(os.path.join(root, file)) as img:
                        # 调整图片大小
                        img.thumbnail(size)
                        # 将处理后的图片保存到输出目录
                        img.save(os.path.join(output_dir, file))
                except Exception as e:
                    print(e)

以上代码中,resize_images函数接收三个参数:输入文件夹、输出文件夹和目标图片尺寸。函数使用os库中的walk方法遍历输入文件夹中的所有图片文件,使用PIL库打开图片,调整大小并将处理后的图片保存到输出文件夹中。如果处理过程中发生错误,该函数会打印出错误提示信息。

4. 调用示例函数resize_images

下面是调用示例函数resize_images的代码示例:

input_dir = '/path/to/input/folder'
output_dir = '/path/to/output/folder'
size = (128, 128)
resize_images(input_dir, output_dir, size)

以上代码中,将input_dir指定为原始图片所在的文件夹路径,output_dir指定为处理后的图片保存的文件夹路径,size指定为目标图片的大小,这里是128×128像素。执行调用后,该函数会批量处理输入文件夹中的所有图片。

5. 更多示例

除了调整图片大小之外,PIL库还可以进行更多的图片处理操作。下面是一个示例函数,可以实现将图片转换为黑白图片。

def convert_to_bw_images(input_dir, output_dir):
    for root, dirs, files in os.walk(input_dir):
        for file in files:
            if file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.png'):
                try:
                    # 打开原始图片
                    with Image.open(os.path.join(root, file)) as img:
                        # 将图片转换为黑白模式
                        img = img.convert('L')
                        # 将处理后的图片保存到输出目录
                        img.save(os.path.join(output_dir, file))
                except Exception as e:
                    print(e)

以上代码中,convert_to_bw_images函数接收两个参数:输入文件夹和输出文件夹。函数使用os库中的walk方法遍历输入文件夹中的所有图片文件,使用PIL库打开图片,将图片转换为黑白模式并将处理后的图片保存到输出文件夹中。如果处理过程中发生错误,该函数会打印出错误提示信息。

在调用该函数时,只需要修改输入文件夹和输出文件夹的路径即可。

input_dir = '/path/to/input/folder'
output_dir = '/path/to/output/folder'
convert_to_bw_images(input_dir, output_dir)

以上代码中,将input_dir指定为原始图片所在的文件夹路径,output_dir指定为处理后的黑白图片保存的文件夹路径。执行调用后,该函数会批量处理输入文件夹中的所有图片。